rice 1.0.2 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. data/COPYING +2 -2
  2. data/Doxyfile +1 -1
  3. data/Makefile.in +8 -3
  4. data/Rakefile +3 -3
  5. data/config.guess +30 -49
  6. data/config.sub +4 -22
  7. data/configure +319 -104
  8. data/configure.ac +6 -2
  9. data/doxygen.ac +2 -2
  10. data/extconf.rb +22 -0
  11. data/post-autoconf.rb +3 -3
  12. data/post-automake.rb +2 -2
  13. data/rice/Array.ipp +7 -6
  14. data/rice/Critical_Guard.hpp +6 -0
  15. data/rice/Critical_Guard.ipp +6 -0
  16. data/rice/Data_Object.hpp +1 -120
  17. data/rice/Data_Object.ipp +5 -1
  18. data/rice/Data_Object_defn.hpp +132 -0
  19. data/rice/Data_Type.ipp +18 -2
  20. data/rice/Enum.ipp +3 -3
  21. data/rice/Exception.hpp +1 -61
  22. data/rice/Exception_Base.hpp +2 -24
  23. data/rice/Exception_Base.ipp +2 -0
  24. data/rice/Exception_Base_defn.hpp +27 -0
  25. data/rice/Exception_defn.hpp +69 -0
  26. data/rice/Hash.hpp +5 -1
  27. data/rice/Hash.ipp +7 -7
  28. data/rice/Makefile.am +20 -3
  29. data/rice/Makefile.in +39 -4
  30. data/rice/Module.cpp +11 -3
  31. data/rice/Module_impl.hpp +20 -9
  32. data/rice/Module_impl.ipp +84 -87
  33. data/rice/Object.cpp +1 -1
  34. data/rice/VM.cpp +14 -1
  35. data/rice/VM.hpp +6 -1
  36. data/rice/config.hpp +24 -3
  37. data/rice/config.hpp.in +21 -0
  38. data/rice/detail/Auto_Function_Wrapper.hpp +97 -65
  39. data/rice/detail/Auto_Function_Wrapper.ipp +160 -128
  40. data/rice/detail/Auto_Member_Function_Wrapper.hpp +96 -64
  41. data/rice/detail/Auto_Member_Function_Wrapper.ipp +160 -128
  42. data/rice/detail/Exception_Handler.hpp +2 -112
  43. data/rice/detail/Exception_Handler.ipp +68 -0
  44. data/rice/detail/Exception_Handler_defn.hpp +96 -0
  45. data/rice/detail/Iterator.hpp +93 -0
  46. data/rice/detail/check_ruby_type.cpp +8 -2
  47. data/rice/detail/creation_funcs.ipp +2 -2
  48. data/rice/detail/define_method_and_auto_wrap.hpp +4 -2
  49. data/rice/detail/define_method_and_auto_wrap.ipp +14 -5
  50. data/rice/detail/env.hpp +4 -0
  51. data/rice/detail/method_data.cpp +362 -75
  52. data/rice/detail/method_data.cpp.rpp +301 -0
  53. data/rice/detail/method_data.hpp +6 -18
  54. data/rice/detail/mininode.cpp +1220 -0
  55. data/rice/detail/mininode.cpp.rpp +62 -0
  56. data/rice/detail/mininode.hpp +320 -0
  57. data/rice/detail/mininode.hpp.rpp +119 -0
  58. data/rice/detail/protect.cpp +4 -2
  59. data/rice/detail/ruby.hpp +44 -18
  60. data/rice/detail/ruby_version_code.hpp +6 -0
  61. data/rice/detail/ruby_version_code.hpp.in +6 -0
  62. data/rice/detail/rubysig.hpp +6 -0
  63. data/rice/detail/st.hpp +6 -2
  64. data/rice/detail/wrap_function.hpp +50 -48
  65. data/rice/detail/wrap_function.ipp +48 -48
  66. data/rice/generate_code.rb +43 -293
  67. data/rice/global_function.hpp +10 -4
  68. data/rice/global_function.ipp +1 -2
  69. data/rice/ruby_mark.hpp +13 -0
  70. data/rice/ruby_try_catch.hpp +1 -1
  71. data/rice/rubypp.rb +97 -0
  72. data/rice/to_from_ruby.ipp +3 -3
  73. data/ruby.ac +44 -8
  74. data/ruby/Makefile.in +2 -0
  75. data/ruby/lib/Makefile.in +2 -0
  76. data/ruby/lib/mkmf-rice.rb.in +4 -1
  77. data/ruby/lib/version.rb +3 -0
  78. data/sample/Makefile.am +2 -2
  79. data/sample/Makefile.in +4 -2
  80. data/test/Makefile.am +2 -1
  81. data/test/Makefile.in +7 -2
  82. data/test/test_Array.cpp +2 -2
  83. data/test/test_Class.cpp +4 -1
  84. data/test/test_Critical_Guard.cpp +4 -0
  85. data/test/test_Data_Object.cpp +43 -3
  86. data/test/test_Hash.cpp +3 -3
  87. data/test/test_String.cpp +8 -8
  88. data/test/test_VM.cpp +1 -1
  89. data/test/test_global_functions.cpp +45 -0
  90. data/test/test_rice.rb +5 -0
  91. metadata +115 -98
  92. data/rice/detail/Iterator_Definer.hpp +0 -98
@@ -28,13 +28,14 @@ public:
28
28
 
29
29
  Auto_Member_Function_Wrapper(
30
30
  Func func,
31
- Exception_Handler const * handler = 0);
31
+ Data_Object<Exception_Handler> handler);
32
32
 
33
33
  static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9, VALUE ruby_arg10, VALUE ruby_arg11, VALUE ruby_arg12, VALUE ruby_arg13, VALUE ruby_arg14, VALUE ruby_arg15);
34
34
 
35
35
  private:
36
36
  Func func_;
37
- Exception_Handler const * handler_;
37
+ Data_Object<Exception_Handler> handler_;
38
+ Address_Registration_Guard handler_guard_;
38
39
  };
39
40
 
40
41
  template<typename Func_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T, typename Arg14_T, typename Arg15_T>
@@ -48,13 +49,14 @@ public:
48
49
 
49
50
  Auto_Member_Function_Wrapper(
50
51
  Func func,
51
- Exception_Handler const * handler = 0);
52
+ Data_Object<Exception_Handler> handler);
52
53
 
53
54
  static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9, VALUE ruby_arg10, VALUE ruby_arg11, VALUE ruby_arg12, VALUE ruby_arg13, VALUE ruby_arg14, VALUE ruby_arg15);
54
55
 
55
56
  private:
56
57
  Func func_;
57
- Exception_Handler const * handler_;
58
+ Data_Object<Exception_Handler> handler_;
59
+ Address_Registration_Guard handler_guard_;
58
60
  };
59
61
 
60
62
  // ---------------------------------------------------------------------
@@ -69,13 +71,14 @@ public:
69
71
 
70
72
  Auto_Member_Function_Wrapper(
71
73
  Func func,
72
- Exception_Handler const * handler = 0);
74
+ Data_Object<Exception_Handler> handler);
73
75
 
74
76
  static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9, VALUE ruby_arg10, VALUE ruby_arg11, VALUE ruby_arg12, VALUE ruby_arg13, VALUE ruby_arg14);
75
77
 
76
78
  private:
77
79
  Func func_;
78
- Exception_Handler const * handler_;
80
+ Data_Object<Exception_Handler> handler_;
81
+ Address_Registration_Guard handler_guard_;
79
82
  };
80
83
 
81
84
  template<typename Func_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T, typename Arg14_T>
@@ -89,13 +92,14 @@ public:
89
92
 
90
93
  Auto_Member_Function_Wrapper(
91
94
  Func func,
92
- Exception_Handler const * handler = 0);
95
+ Data_Object<Exception_Handler> handler);
93
96
 
94
97
  static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9, VALUE ruby_arg10, VALUE ruby_arg11, VALUE ruby_arg12, VALUE ruby_arg13, VALUE ruby_arg14);
95
98
 
96
99
  private:
97
100
  Func func_;
98
- Exception_Handler const * handler_;
101
+ Data_Object<Exception_Handler> handler_;
102
+ Address_Registration_Guard handler_guard_;
99
103
  };
100
104
 
101
105
  // ---------------------------------------------------------------------
@@ -110,13 +114,14 @@ public:
110
114
 
111
115
  Auto_Member_Function_Wrapper(
112
116
  Func func,
113
- Exception_Handler const * handler = 0);
117
+ Data_Object<Exception_Handler> handler);
114
118
 
115
119
  static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9, VALUE ruby_arg10, VALUE ruby_arg11, VALUE ruby_arg12, VALUE ruby_arg13);
116
120
 
117
121
  private:
118
122
  Func func_;
119
- Exception_Handler const * handler_;
123
+ Data_Object<Exception_Handler> handler_;
124
+ Address_Registration_Guard handler_guard_;
120
125
  };
121
126
 
122
127
  template<typename Func_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T>
@@ -130,13 +135,14 @@ public:
130
135
 
131
136
  Auto_Member_Function_Wrapper(
132
137
  Func func,
133
- Exception_Handler const * handler = 0);
138
+ Data_Object<Exception_Handler> handler);
134
139
 
135
140
  static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9, VALUE ruby_arg10, VALUE ruby_arg11, VALUE ruby_arg12, VALUE ruby_arg13);
136
141
 
137
142
  private:
138
143
  Func func_;
139
- Exception_Handler const * handler_;
144
+ Data_Object<Exception_Handler> handler_;
145
+ Address_Registration_Guard handler_guard_;
140
146
  };
141
147
 
142
148
  // ---------------------------------------------------------------------
@@ -151,13 +157,14 @@ public:
151
157
 
152
158
  Auto_Member_Function_Wrapper(
153
159
  Func func,
154
- Exception_Handler const * handler = 0);
160
+ Data_Object<Exception_Handler> handler);
155
161
 
156
162
  static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9, VALUE ruby_arg10, VALUE ruby_arg11, VALUE ruby_arg12);
157
163
 
158
164
  private:
159
165
  Func func_;
160
- Exception_Handler const * handler_;
166
+ Data_Object<Exception_Handler> handler_;
167
+ Address_Registration_Guard handler_guard_;
161
168
  };
162
169
 
163
170
  template<typename Func_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T>
@@ -171,13 +178,14 @@ public:
171
178
 
172
179
  Auto_Member_Function_Wrapper(
173
180
  Func func,
174
- Exception_Handler const * handler = 0);
181
+ Data_Object<Exception_Handler> handler);
175
182
 
176
183
  static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9, VALUE ruby_arg10, VALUE ruby_arg11, VALUE ruby_arg12);
177
184
 
178
185
  private:
179
186
  Func func_;
180
- Exception_Handler const * handler_;
187
+ Data_Object<Exception_Handler> handler_;
188
+ Address_Registration_Guard handler_guard_;
181
189
  };
182
190
 
183
191
  // ---------------------------------------------------------------------
@@ -192,13 +200,14 @@ public:
192
200
 
193
201
  Auto_Member_Function_Wrapper(
194
202
  Func func,
195
- Exception_Handler const * handler = 0);
203
+ Data_Object<Exception_Handler> handler);
196
204
 
197
205
  static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9, VALUE ruby_arg10, VALUE ruby_arg11);
198
206
 
199
207
  private:
200
208
  Func func_;
201
- Exception_Handler const * handler_;
209
+ Data_Object<Exception_Handler> handler_;
210
+ Address_Registration_Guard handler_guard_;
202
211
  };
203
212
 
204
213
  template<typename Func_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T>
@@ -212,13 +221,14 @@ public:
212
221
 
213
222
  Auto_Member_Function_Wrapper(
214
223
  Func func,
215
- Exception_Handler const * handler = 0);
224
+ Data_Object<Exception_Handler> handler);
216
225
 
217
226
  static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9, VALUE ruby_arg10, VALUE ruby_arg11);
218
227
 
219
228
  private:
220
229
  Func func_;
221
- Exception_Handler const * handler_;
230
+ Data_Object<Exception_Handler> handler_;
231
+ Address_Registration_Guard handler_guard_;
222
232
  };
223
233
 
224
234
  // ---------------------------------------------------------------------
@@ -233,13 +243,14 @@ public:
233
243
 
234
244
  Auto_Member_Function_Wrapper(
235
245
  Func func,
236
- Exception_Handler const * handler = 0);
246
+ Data_Object<Exception_Handler> handler);
237
247
 
238
248
  static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9, VALUE ruby_arg10);
239
249
 
240
250
  private:
241
251
  Func func_;
242
- Exception_Handler const * handler_;
252
+ Data_Object<Exception_Handler> handler_;
253
+ Address_Registration_Guard handler_guard_;
243
254
  };
244
255
 
245
256
  template<typename Func_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T>
@@ -253,13 +264,14 @@ public:
253
264
 
254
265
  Auto_Member_Function_Wrapper(
255
266
  Func func,
256
- Exception_Handler const * handler = 0);
267
+ Data_Object<Exception_Handler> handler);
257
268
 
258
269
  static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9, VALUE ruby_arg10);
259
270
 
260
271
  private:
261
272
  Func func_;
262
- Exception_Handler const * handler_;
273
+ Data_Object<Exception_Handler> handler_;
274
+ Address_Registration_Guard handler_guard_;
263
275
  };
264
276
 
265
277
  // ---------------------------------------------------------------------
@@ -274,13 +286,14 @@ public:
274
286
 
275
287
  Auto_Member_Function_Wrapper(
276
288
  Func func,
277
- Exception_Handler const * handler = 0);
289
+ Data_Object<Exception_Handler> handler);
278
290
 
279
291
  static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9);
280
292
 
281
293
  private:
282
294
  Func func_;
283
- Exception_Handler const * handler_;
295
+ Data_Object<Exception_Handler> handler_;
296
+ Address_Registration_Guard handler_guard_;
284
297
  };
285
298
 
286
299
  template<typename Func_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T>
@@ -294,13 +307,14 @@ public:
294
307
 
295
308
  Auto_Member_Function_Wrapper(
296
309
  Func func,
297
- Exception_Handler const * handler = 0);
310
+ Data_Object<Exception_Handler> handler);
298
311
 
299
312
  static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8, VALUE ruby_arg9);
300
313
 
301
314
  private:
302
315
  Func func_;
303
- Exception_Handler const * handler_;
316
+ Data_Object<Exception_Handler> handler_;
317
+ Address_Registration_Guard handler_guard_;
304
318
  };
305
319
 
306
320
  // ---------------------------------------------------------------------
@@ -315,13 +329,14 @@ public:
315
329
 
316
330
  Auto_Member_Function_Wrapper(
317
331
  Func func,
318
- Exception_Handler const * handler = 0);
332
+ Data_Object<Exception_Handler> handler);
319
333
 
320
334
  static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8);
321
335
 
322
336
  private:
323
337
  Func func_;
324
- Exception_Handler const * handler_;
338
+ Data_Object<Exception_Handler> handler_;
339
+ Address_Registration_Guard handler_guard_;
325
340
  };
326
341
 
327
342
  template<typename Func_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T>
@@ -335,13 +350,14 @@ public:
335
350
 
336
351
  Auto_Member_Function_Wrapper(
337
352
  Func func,
338
- Exception_Handler const * handler = 0);
353
+ Data_Object<Exception_Handler> handler);
339
354
 
340
355
  static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8);
341
356
 
342
357
  private:
343
358
  Func func_;
344
- Exception_Handler const * handler_;
359
+ Data_Object<Exception_Handler> handler_;
360
+ Address_Registration_Guard handler_guard_;
345
361
  };
346
362
 
347
363
  // ---------------------------------------------------------------------
@@ -356,13 +372,14 @@ public:
356
372
 
357
373
  Auto_Member_Function_Wrapper(
358
374
  Func func,
359
- Exception_Handler const * handler = 0);
375
+ Data_Object<Exception_Handler> handler);
360
376
 
361
377
  static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7);
362
378
 
363
379
  private:
364
380
  Func func_;
365
- Exception_Handler const * handler_;
381
+ Data_Object<Exception_Handler> handler_;
382
+ Address_Registration_Guard handler_guard_;
366
383
  };
367
384
 
368
385
  template<typename Func_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T>
@@ -376,13 +393,14 @@ public:
376
393
 
377
394
  Auto_Member_Function_Wrapper(
378
395
  Func func,
379
- Exception_Handler const * handler = 0);
396
+ Data_Object<Exception_Handler> handler);
380
397
 
381
398
  static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7);
382
399
 
383
400
  private:
384
401
  Func func_;
385
- Exception_Handler const * handler_;
402
+ Data_Object<Exception_Handler> handler_;
403
+ Address_Registration_Guard handler_guard_;
386
404
  };
387
405
 
388
406
  // ---------------------------------------------------------------------
@@ -397,13 +415,14 @@ public:
397
415
 
398
416
  Auto_Member_Function_Wrapper(
399
417
  Func func,
400
- Exception_Handler const * handler = 0);
418
+ Data_Object<Exception_Handler> handler);
401
419
 
402
420
  static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6);
403
421
 
404
422
  private:
405
423
  Func func_;
406
- Exception_Handler const * handler_;
424
+ Data_Object<Exception_Handler> handler_;
425
+ Address_Registration_Guard handler_guard_;
407
426
  };
408
427
 
409
428
  template<typename Func_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T>
@@ -417,13 +436,14 @@ public:
417
436
 
418
437
  Auto_Member_Function_Wrapper(
419
438
  Func func,
420
- Exception_Handler const * handler = 0);
439
+ Data_Object<Exception_Handler> handler);
421
440
 
422
441
  static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6);
423
442
 
424
443
  private:
425
444
  Func func_;
426
- Exception_Handler const * handler_;
445
+ Data_Object<Exception_Handler> handler_;
446
+ Address_Registration_Guard handler_guard_;
427
447
  };
428
448
 
429
449
  // ---------------------------------------------------------------------
@@ -438,13 +458,14 @@ public:
438
458
 
439
459
  Auto_Member_Function_Wrapper(
440
460
  Func func,
441
- Exception_Handler const * handler = 0);
461
+ Data_Object<Exception_Handler> handler);
442
462
 
443
463
  static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5);
444
464
 
445
465
  private:
446
466
  Func func_;
447
- Exception_Handler const * handler_;
467
+ Data_Object<Exception_Handler> handler_;
468
+ Address_Registration_Guard handler_guard_;
448
469
  };
449
470
 
450
471
  template<typename Func_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T>
@@ -458,13 +479,14 @@ public:
458
479
 
459
480
  Auto_Member_Function_Wrapper(
460
481
  Func func,
461
- Exception_Handler const * handler = 0);
482
+ Data_Object<Exception_Handler> handler);
462
483
 
463
484
  static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5);
464
485
 
465
486
  private:
466
487
  Func func_;
467
- Exception_Handler const * handler_;
488
+ Data_Object<Exception_Handler> handler_;
489
+ Address_Registration_Guard handler_guard_;
468
490
  };
469
491
 
470
492
  // ---------------------------------------------------------------------
@@ -479,13 +501,14 @@ public:
479
501
 
480
502
  Auto_Member_Function_Wrapper(
481
503
  Func func,
482
- Exception_Handler const * handler = 0);
504
+ Data_Object<Exception_Handler> handler);
483
505
 
484
506
  static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4);
485
507
 
486
508
  private:
487
509
  Func func_;
488
- Exception_Handler const * handler_;
510
+ Data_Object<Exception_Handler> handler_;
511
+ Address_Registration_Guard handler_guard_;
489
512
  };
490
513
 
491
514
  template<typename Func_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
@@ -499,13 +522,14 @@ public:
499
522
 
500
523
  Auto_Member_Function_Wrapper(
501
524
  Func func,
502
- Exception_Handler const * handler = 0);
525
+ Data_Object<Exception_Handler> handler);
503
526
 
504
527
  static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4);
505
528
 
506
529
  private:
507
530
  Func func_;
508
- Exception_Handler const * handler_;
531
+ Data_Object<Exception_Handler> handler_;
532
+ Address_Registration_Guard handler_guard_;
509
533
  };
510
534
 
511
535
  // ---------------------------------------------------------------------
@@ -520,13 +544,14 @@ public:
520
544
 
521
545
  Auto_Member_Function_Wrapper(
522
546
  Func func,
523
- Exception_Handler const * handler = 0);
547
+ Data_Object<Exception_Handler> handler);
524
548
 
525
549
  static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3);
526
550
 
527
551
  private:
528
552
  Func func_;
529
- Exception_Handler const * handler_;
553
+ Data_Object<Exception_Handler> handler_;
554
+ Address_Registration_Guard handler_guard_;
530
555
  };
531
556
 
532
557
  template<typename Func_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
@@ -540,13 +565,14 @@ public:
540
565
 
541
566
  Auto_Member_Function_Wrapper(
542
567
  Func func,
543
- Exception_Handler const * handler = 0);
568
+ Data_Object<Exception_Handler> handler);
544
569
 
545
570
  static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3);
546
571
 
547
572
  private:
548
573
  Func func_;
549
- Exception_Handler const * handler_;
574
+ Data_Object<Exception_Handler> handler_;
575
+ Address_Registration_Guard handler_guard_;
550
576
  };
551
577
 
552
578
  // ---------------------------------------------------------------------
@@ -561,13 +587,14 @@ public:
561
587
 
562
588
  Auto_Member_Function_Wrapper(
563
589
  Func func,
564
- Exception_Handler const * handler = 0);
590
+ Data_Object<Exception_Handler> handler);
565
591
 
566
592
  static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2);
567
593
 
568
594
  private:
569
595
  Func func_;
570
- Exception_Handler const * handler_;
596
+ Data_Object<Exception_Handler> handler_;
597
+ Address_Registration_Guard handler_guard_;
571
598
  };
572
599
 
573
600
  template<typename Func_T, typename Self_T, typename Arg1_T, typename Arg2_T>
@@ -581,13 +608,14 @@ public:
581
608
 
582
609
  Auto_Member_Function_Wrapper(
583
610
  Func func,
584
- Exception_Handler const * handler = 0);
611
+ Data_Object<Exception_Handler> handler);
585
612
 
586
613
  static VALUE call(VALUE self, VALUE ruby_arg1, VALUE ruby_arg2);
587
614
 
588
615
  private:
589
616
  Func func_;
590
- Exception_Handler const * handler_;
617
+ Data_Object<Exception_Handler> handler_;
618
+ Address_Registration_Guard handler_guard_;
591
619
  };
592
620
 
593
621
  // ---------------------------------------------------------------------
@@ -602,13 +630,14 @@ public:
602
630
 
603
631
  Auto_Member_Function_Wrapper(
604
632
  Func func,
605
- Exception_Handler const * handler = 0);
633
+ Data_Object<Exception_Handler> handler);
606
634
 
607
635
  static VALUE call(VALUE self, VALUE ruby_arg1);
608
636
 
609
637
  private:
610
638
  Func func_;
611
- Exception_Handler const * handler_;
639
+ Data_Object<Exception_Handler> handler_;
640
+ Address_Registration_Guard handler_guard_;
612
641
  };
613
642
 
614
643
  template<typename Func_T, typename Self_T, typename Arg1_T>
@@ -622,13 +651,14 @@ public:
622
651
 
623
652
  Auto_Member_Function_Wrapper(
624
653
  Func func,
625
- Exception_Handler const * handler = 0);
654
+ Data_Object<Exception_Handler> handler);
626
655
 
627
656
  static VALUE call(VALUE self, VALUE ruby_arg1);
628
657
 
629
658
  private:
630
659
  Func func_;
631
- Exception_Handler const * handler_;
660
+ Data_Object<Exception_Handler> handler_;
661
+ Address_Registration_Guard handler_guard_;
632
662
  };
633
663
 
634
664
  // ---------------------------------------------------------------------
@@ -643,13 +673,14 @@ public:
643
673
 
644
674
  Auto_Member_Function_Wrapper(
645
675
  Func func,
646
- Exception_Handler const * handler = 0);
676
+ Data_Object<Exception_Handler> handler);
647
677
 
648
678
  static VALUE call(VALUE self);
649
679
 
650
680
  private:
651
681
  Func func_;
652
- Exception_Handler const * handler_;
682
+ Data_Object<Exception_Handler> handler_;
683
+ Address_Registration_Guard handler_guard_;
653
684
  };
654
685
 
655
686
  template<typename Func_T, typename Self_T>
@@ -663,13 +694,14 @@ public:
663
694
 
664
695
  Auto_Member_Function_Wrapper(
665
696
  Func func,
666
- Exception_Handler const * handler = 0);
697
+ Data_Object<Exception_Handler> handler);
667
698
 
668
699
  static VALUE call(VALUE self);
669
700
 
670
701
  private:
671
702
  Func func_;
672
- Exception_Handler const * handler_;
703
+ Data_Object<Exception_Handler> handler_;
704
+ Address_Registration_Guard handler_guard_;
673
705
  };
674
706
 
675
707
  // ---------------------------------------------------------------------