rice 1.0.2 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
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
  // ---------------------------------------------------------------------