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
data/rice/config.hpp.in CHANGED
@@ -1,5 +1,23 @@
1
1
  /* rice/config.hpp.in. Generated from configure.ac by autoheader. */
2
2
 
3
+ /* Define to 1 if you have the <env.h> header file. */
4
+ #undef HAVE_ENV_H
5
+
6
+ /* Define to 1 if you have the <node.h> header file. */
7
+ #undef HAVE_NODE_H
8
+
9
+ /* Define this macro if rb_class_boot is defined */
10
+ #undef HAVE_RB_CLASS_BOOT
11
+
12
+ /* Define to 1 if you have the <ruby.h> header file. */
13
+ #undef HAVE_RUBY_H
14
+
15
+ /* Define to 1 if you have the <ruby/node.h> header file. */
16
+ #undef HAVE_RUBY_NODE_H
17
+
18
+ /* Define to 1 if you have the <version.h> header file. */
19
+ #undef HAVE_VERSION_H
20
+
3
21
  /* Name of package */
4
22
  #undef PACKAGE
5
23
 
@@ -18,5 +36,8 @@
18
36
  /* Define to the version of this package. */
19
37
  #undef PACKAGE_VERSION
20
38
 
39
+ /* Define this macro to use ruby/node.h */
40
+ #undef REALLY_HAVE_RUBY_NODE_H
41
+
21
42
  /* Version number of package */
22
43
  #undef VERSION
@@ -7,7 +7,7 @@
7
7
  // This causes problems with certain C++ libraries
8
8
  #undef TYPE
9
9
 
10
- #include "Exception_Handler.hpp"
10
+ #include "Exception_Handler_defn.hpp"
11
11
 
12
12
  namespace Rice
13
13
  {
@@ -31,13 +31,14 @@ public:
31
31
 
32
32
  Auto_Function_Wrapper(
33
33
  Func func,
34
- Exception_Handler const * handler = 0);
34
+ Data_Object<Exception_Handler> handler);
35
35
 
36
36
  static VALUE call(VALUE ruby_arg0, 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);
37
37
 
38
38
  private:
39
39
  Func func_;
40
- Exception_Handler const * handler_;
40
+ Data_Object<Exception_Handler> handler_;
41
+ Address_Registration_Guard handler_guard_;
41
42
  };
42
43
 
43
44
  template<typename Func_T, typename Arg0_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>
@@ -52,13 +53,14 @@ public:
52
53
 
53
54
  Auto_Function_Wrapper(
54
55
  Func func,
55
- Exception_Handler const * handler = 0);
56
+ Data_Object<Exception_Handler> handler);
56
57
 
57
58
  static VALUE call(VALUE ruby_arg0, 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);
58
59
 
59
60
  private:
60
61
  Func func_;
61
- Exception_Handler const * handler_;
62
+ Data_Object<Exception_Handler> handler_;
63
+ Address_Registration_Guard handler_guard_;
62
64
  };
63
65
 
64
66
  // ---------------------------------------------------------------------
@@ -74,13 +76,14 @@ public:
74
76
 
75
77
  Auto_Function_Wrapper(
76
78
  Func func,
77
- Exception_Handler const * handler = 0);
79
+ Data_Object<Exception_Handler> handler);
78
80
 
79
81
  static VALUE call(VALUE ruby_arg0, 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);
80
82
 
81
83
  private:
82
84
  Func func_;
83
- Exception_Handler const * handler_;
85
+ Data_Object<Exception_Handler> handler_;
86
+ Address_Registration_Guard handler_guard_;
84
87
  };
85
88
 
86
89
  template<typename Func_T, typename Arg0_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>
@@ -95,13 +98,14 @@ public:
95
98
 
96
99
  Auto_Function_Wrapper(
97
100
  Func func,
98
- Exception_Handler const * handler = 0);
101
+ Data_Object<Exception_Handler> handler);
99
102
 
100
103
  static VALUE call(VALUE ruby_arg0, 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);
101
104
 
102
105
  private:
103
106
  Func func_;
104
- Exception_Handler const * handler_;
107
+ Data_Object<Exception_Handler> handler_;
108
+ Address_Registration_Guard handler_guard_;
105
109
  };
106
110
 
107
111
  // ---------------------------------------------------------------------
@@ -117,13 +121,14 @@ public:
117
121
 
118
122
  Auto_Function_Wrapper(
119
123
  Func func,
120
- Exception_Handler const * handler = 0);
124
+ Data_Object<Exception_Handler> handler);
121
125
 
122
126
  static VALUE call(VALUE ruby_arg0, 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);
123
127
 
124
128
  private:
125
129
  Func func_;
126
- Exception_Handler const * handler_;
130
+ Data_Object<Exception_Handler> handler_;
131
+ Address_Registration_Guard handler_guard_;
127
132
  };
128
133
 
129
134
  template<typename Func_T, typename Arg0_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>
@@ -138,13 +143,14 @@ public:
138
143
 
139
144
  Auto_Function_Wrapper(
140
145
  Func func,
141
- Exception_Handler const * handler = 0);
146
+ Data_Object<Exception_Handler> handler);
142
147
 
143
148
  static VALUE call(VALUE ruby_arg0, 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);
144
149
 
145
150
  private:
146
151
  Func func_;
147
- Exception_Handler const * handler_;
152
+ Data_Object<Exception_Handler> handler_;
153
+ Address_Registration_Guard handler_guard_;
148
154
  };
149
155
 
150
156
  // ---------------------------------------------------------------------
@@ -160,13 +166,14 @@ public:
160
166
 
161
167
  Auto_Function_Wrapper(
162
168
  Func func,
163
- Exception_Handler const * handler = 0);
169
+ Data_Object<Exception_Handler> handler);
164
170
 
165
171
  static VALUE call(VALUE ruby_arg0, 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);
166
172
 
167
173
  private:
168
174
  Func func_;
169
- Exception_Handler const * handler_;
175
+ Data_Object<Exception_Handler> handler_;
176
+ Address_Registration_Guard handler_guard_;
170
177
  };
171
178
 
172
179
  template<typename Func_T, typename Arg0_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>
@@ -181,13 +188,14 @@ public:
181
188
 
182
189
  Auto_Function_Wrapper(
183
190
  Func func,
184
- Exception_Handler const * handler = 0);
191
+ Data_Object<Exception_Handler> handler);
185
192
 
186
193
  static VALUE call(VALUE ruby_arg0, 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);
187
194
 
188
195
  private:
189
196
  Func func_;
190
- Exception_Handler const * handler_;
197
+ Data_Object<Exception_Handler> handler_;
198
+ Address_Registration_Guard handler_guard_;
191
199
  };
192
200
 
193
201
  // ---------------------------------------------------------------------
@@ -203,13 +211,14 @@ public:
203
211
 
204
212
  Auto_Function_Wrapper(
205
213
  Func func,
206
- Exception_Handler const * handler = 0);
214
+ Data_Object<Exception_Handler> handler);
207
215
 
208
216
  static VALUE call(VALUE ruby_arg0, 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);
209
217
 
210
218
  private:
211
219
  Func func_;
212
- Exception_Handler const * handler_;
220
+ Data_Object<Exception_Handler> handler_;
221
+ Address_Registration_Guard handler_guard_;
213
222
  };
214
223
 
215
224
  template<typename Func_T, typename Arg0_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>
@@ -224,13 +233,14 @@ public:
224
233
 
225
234
  Auto_Function_Wrapper(
226
235
  Func func,
227
- Exception_Handler const * handler = 0);
236
+ Data_Object<Exception_Handler> handler);
228
237
 
229
238
  static VALUE call(VALUE ruby_arg0, 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);
230
239
 
231
240
  private:
232
241
  Func func_;
233
- Exception_Handler const * handler_;
242
+ Data_Object<Exception_Handler> handler_;
243
+ Address_Registration_Guard handler_guard_;
234
244
  };
235
245
 
236
246
  // ---------------------------------------------------------------------
@@ -246,13 +256,14 @@ public:
246
256
 
247
257
  Auto_Function_Wrapper(
248
258
  Func func,
249
- Exception_Handler const * handler = 0);
259
+ Data_Object<Exception_Handler> handler);
250
260
 
251
261
  static VALUE call(VALUE ruby_arg0, 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);
252
262
 
253
263
  private:
254
264
  Func func_;
255
- Exception_Handler const * handler_;
265
+ Data_Object<Exception_Handler> handler_;
266
+ Address_Registration_Guard handler_guard_;
256
267
  };
257
268
 
258
269
  template<typename Func_T, typename Arg0_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>
@@ -267,13 +278,14 @@ public:
267
278
 
268
279
  Auto_Function_Wrapper(
269
280
  Func func,
270
- Exception_Handler const * handler = 0);
281
+ Data_Object<Exception_Handler> handler);
271
282
 
272
283
  static VALUE call(VALUE ruby_arg0, 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);
273
284
 
274
285
  private:
275
286
  Func func_;
276
- Exception_Handler const * handler_;
287
+ Data_Object<Exception_Handler> handler_;
288
+ Address_Registration_Guard handler_guard_;
277
289
  };
278
290
 
279
291
  // ---------------------------------------------------------------------
@@ -289,13 +301,14 @@ public:
289
301
 
290
302
  Auto_Function_Wrapper(
291
303
  Func func,
292
- Exception_Handler const * handler = 0);
304
+ Data_Object<Exception_Handler> handler);
293
305
 
294
306
  static VALUE call(VALUE ruby_arg0, 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);
295
307
 
296
308
  private:
297
309
  Func func_;
298
- Exception_Handler const * handler_;
310
+ Data_Object<Exception_Handler> handler_;
311
+ Address_Registration_Guard handler_guard_;
299
312
  };
300
313
 
301
314
  template<typename Func_T, typename Arg0_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>
@@ -310,13 +323,14 @@ public:
310
323
 
311
324
  Auto_Function_Wrapper(
312
325
  Func func,
313
- Exception_Handler const * handler = 0);
326
+ Data_Object<Exception_Handler> handler);
314
327
 
315
328
  static VALUE call(VALUE ruby_arg0, 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);
316
329
 
317
330
  private:
318
331
  Func func_;
319
- Exception_Handler const * handler_;
332
+ Data_Object<Exception_Handler> handler_;
333
+ Address_Registration_Guard handler_guard_;
320
334
  };
321
335
 
322
336
  // ---------------------------------------------------------------------
@@ -332,13 +346,14 @@ public:
332
346
 
333
347
  Auto_Function_Wrapper(
334
348
  Func func,
335
- Exception_Handler const * handler = 0);
349
+ Data_Object<Exception_Handler> handler);
336
350
 
337
351
  static VALUE call(VALUE ruby_arg0, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8);
338
352
 
339
353
  private:
340
354
  Func func_;
341
- Exception_Handler const * handler_;
355
+ Data_Object<Exception_Handler> handler_;
356
+ Address_Registration_Guard handler_guard_;
342
357
  };
343
358
 
344
359
  template<typename Func_T, typename Arg0_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>
@@ -353,13 +368,14 @@ public:
353
368
 
354
369
  Auto_Function_Wrapper(
355
370
  Func func,
356
- Exception_Handler const * handler = 0);
371
+ Data_Object<Exception_Handler> handler);
357
372
 
358
373
  static VALUE call(VALUE ruby_arg0, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7, VALUE ruby_arg8);
359
374
 
360
375
  private:
361
376
  Func func_;
362
- Exception_Handler const * handler_;
377
+ Data_Object<Exception_Handler> handler_;
378
+ Address_Registration_Guard handler_guard_;
363
379
  };
364
380
 
365
381
  // ---------------------------------------------------------------------
@@ -375,13 +391,14 @@ public:
375
391
 
376
392
  Auto_Function_Wrapper(
377
393
  Func func,
378
- Exception_Handler const * handler = 0);
394
+ Data_Object<Exception_Handler> handler);
379
395
 
380
396
  static VALUE call(VALUE ruby_arg0, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7);
381
397
 
382
398
  private:
383
399
  Func func_;
384
- Exception_Handler const * handler_;
400
+ Data_Object<Exception_Handler> handler_;
401
+ Address_Registration_Guard handler_guard_;
385
402
  };
386
403
 
387
404
  template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T>
@@ -396,13 +413,14 @@ public:
396
413
 
397
414
  Auto_Function_Wrapper(
398
415
  Func func,
399
- Exception_Handler const * handler = 0);
416
+ Data_Object<Exception_Handler> handler);
400
417
 
401
418
  static VALUE call(VALUE ruby_arg0, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6, VALUE ruby_arg7);
402
419
 
403
420
  private:
404
421
  Func func_;
405
- Exception_Handler const * handler_;
422
+ Data_Object<Exception_Handler> handler_;
423
+ Address_Registration_Guard handler_guard_;
406
424
  };
407
425
 
408
426
  // ---------------------------------------------------------------------
@@ -418,13 +436,14 @@ public:
418
436
 
419
437
  Auto_Function_Wrapper(
420
438
  Func func,
421
- Exception_Handler const * handler = 0);
439
+ Data_Object<Exception_Handler> handler);
422
440
 
423
441
  static VALUE call(VALUE ruby_arg0, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6);
424
442
 
425
443
  private:
426
444
  Func func_;
427
- Exception_Handler const * handler_;
445
+ Data_Object<Exception_Handler> handler_;
446
+ Address_Registration_Guard handler_guard_;
428
447
  };
429
448
 
430
449
  template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T>
@@ -439,13 +458,14 @@ public:
439
458
 
440
459
  Auto_Function_Wrapper(
441
460
  Func func,
442
- Exception_Handler const * handler = 0);
461
+ Data_Object<Exception_Handler> handler);
443
462
 
444
463
  static VALUE call(VALUE ruby_arg0, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5, VALUE ruby_arg6);
445
464
 
446
465
  private:
447
466
  Func func_;
448
- Exception_Handler const * handler_;
467
+ Data_Object<Exception_Handler> handler_;
468
+ Address_Registration_Guard handler_guard_;
449
469
  };
450
470
 
451
471
  // ---------------------------------------------------------------------
@@ -461,13 +481,14 @@ public:
461
481
 
462
482
  Auto_Function_Wrapper(
463
483
  Func func,
464
- Exception_Handler const * handler = 0);
484
+ Data_Object<Exception_Handler> handler);
465
485
 
466
486
  static VALUE call(VALUE ruby_arg0, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5);
467
487
 
468
488
  private:
469
489
  Func func_;
470
- Exception_Handler const * handler_;
490
+ Data_Object<Exception_Handler> handler_;
491
+ Address_Registration_Guard handler_guard_;
471
492
  };
472
493
 
473
494
  template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T>
@@ -482,13 +503,14 @@ public:
482
503
 
483
504
  Auto_Function_Wrapper(
484
505
  Func func,
485
- Exception_Handler const * handler = 0);
506
+ Data_Object<Exception_Handler> handler);
486
507
 
487
508
  static VALUE call(VALUE ruby_arg0, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4, VALUE ruby_arg5);
488
509
 
489
510
  private:
490
511
  Func func_;
491
- Exception_Handler const * handler_;
512
+ Data_Object<Exception_Handler> handler_;
513
+ Address_Registration_Guard handler_guard_;
492
514
  };
493
515
 
494
516
  // ---------------------------------------------------------------------
@@ -504,13 +526,14 @@ public:
504
526
 
505
527
  Auto_Function_Wrapper(
506
528
  Func func,
507
- Exception_Handler const * handler = 0);
529
+ Data_Object<Exception_Handler> handler);
508
530
 
509
531
  static VALUE call(VALUE ruby_arg0, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4);
510
532
 
511
533
  private:
512
534
  Func func_;
513
- Exception_Handler const * handler_;
535
+ Data_Object<Exception_Handler> handler_;
536
+ Address_Registration_Guard handler_guard_;
514
537
  };
515
538
 
516
539
  template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
@@ -525,13 +548,14 @@ public:
525
548
 
526
549
  Auto_Function_Wrapper(
527
550
  Func func,
528
- Exception_Handler const * handler = 0);
551
+ Data_Object<Exception_Handler> handler);
529
552
 
530
553
  static VALUE call(VALUE ruby_arg0, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3, VALUE ruby_arg4);
531
554
 
532
555
  private:
533
556
  Func func_;
534
- Exception_Handler const * handler_;
557
+ Data_Object<Exception_Handler> handler_;
558
+ Address_Registration_Guard handler_guard_;
535
559
  };
536
560
 
537
561
  // ---------------------------------------------------------------------
@@ -547,13 +571,14 @@ public:
547
571
 
548
572
  Auto_Function_Wrapper(
549
573
  Func func,
550
- Exception_Handler const * handler = 0);
574
+ Data_Object<Exception_Handler> handler);
551
575
 
552
576
  static VALUE call(VALUE ruby_arg0, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3);
553
577
 
554
578
  private:
555
579
  Func func_;
556
- Exception_Handler const * handler_;
580
+ Data_Object<Exception_Handler> handler_;
581
+ Address_Registration_Guard handler_guard_;
557
582
  };
558
583
 
559
584
  template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
@@ -568,13 +593,14 @@ public:
568
593
 
569
594
  Auto_Function_Wrapper(
570
595
  Func func,
571
- Exception_Handler const * handler = 0);
596
+ Data_Object<Exception_Handler> handler);
572
597
 
573
598
  static VALUE call(VALUE ruby_arg0, VALUE ruby_arg1, VALUE ruby_arg2, VALUE ruby_arg3);
574
599
 
575
600
  private:
576
601
  Func func_;
577
- Exception_Handler const * handler_;
602
+ Data_Object<Exception_Handler> handler_;
603
+ Address_Registration_Guard handler_guard_;
578
604
  };
579
605
 
580
606
  // ---------------------------------------------------------------------
@@ -590,13 +616,14 @@ public:
590
616
 
591
617
  Auto_Function_Wrapper(
592
618
  Func func,
593
- Exception_Handler const * handler = 0);
619
+ Data_Object<Exception_Handler> handler);
594
620
 
595
621
  static VALUE call(VALUE ruby_arg0, VALUE ruby_arg1, VALUE ruby_arg2);
596
622
 
597
623
  private:
598
624
  Func func_;
599
- Exception_Handler const * handler_;
625
+ Data_Object<Exception_Handler> handler_;
626
+ Address_Registration_Guard handler_guard_;
600
627
  };
601
628
 
602
629
  template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T>
@@ -611,13 +638,14 @@ public:
611
638
 
612
639
  Auto_Function_Wrapper(
613
640
  Func func,
614
- Exception_Handler const * handler = 0);
641
+ Data_Object<Exception_Handler> handler);
615
642
 
616
643
  static VALUE call(VALUE ruby_arg0, VALUE ruby_arg1, VALUE ruby_arg2);
617
644
 
618
645
  private:
619
646
  Func func_;
620
- Exception_Handler const * handler_;
647
+ Data_Object<Exception_Handler> handler_;
648
+ Address_Registration_Guard handler_guard_;
621
649
  };
622
650
 
623
651
  // ---------------------------------------------------------------------
@@ -633,13 +661,14 @@ public:
633
661
 
634
662
  Auto_Function_Wrapper(
635
663
  Func func,
636
- Exception_Handler const * handler = 0);
664
+ Data_Object<Exception_Handler> handler);
637
665
 
638
666
  static VALUE call(VALUE ruby_arg0, VALUE ruby_arg1);
639
667
 
640
668
  private:
641
669
  Func func_;
642
- Exception_Handler const * handler_;
670
+ Data_Object<Exception_Handler> handler_;
671
+ Address_Registration_Guard handler_guard_;
643
672
  };
644
673
 
645
674
  template<typename Func_T, typename Arg0_T, typename Arg1_T>
@@ -654,13 +683,14 @@ public:
654
683
 
655
684
  Auto_Function_Wrapper(
656
685
  Func func,
657
- Exception_Handler const * handler = 0);
686
+ Data_Object<Exception_Handler> handler);
658
687
 
659
688
  static VALUE call(VALUE ruby_arg0, VALUE ruby_arg1);
660
689
 
661
690
  private:
662
691
  Func func_;
663
- Exception_Handler const * handler_;
692
+ Data_Object<Exception_Handler> handler_;
693
+ Address_Registration_Guard handler_guard_;
664
694
  };
665
695
 
666
696
  // ---------------------------------------------------------------------
@@ -676,13 +706,14 @@ public:
676
706
 
677
707
  Auto_Function_Wrapper(
678
708
  Func func,
679
- Exception_Handler const * handler = 0);
709
+ Data_Object<Exception_Handler> handler);
680
710
 
681
711
  static VALUE call(VALUE ruby_arg0);
682
712
 
683
713
  private:
684
714
  Func func_;
685
- Exception_Handler const * handler_;
715
+ Data_Object<Exception_Handler> handler_;
716
+ Address_Registration_Guard handler_guard_;
686
717
  };
687
718
 
688
719
  template<typename Func_T, typename Arg0_T>
@@ -697,13 +728,14 @@ public:
697
728
 
698
729
  Auto_Function_Wrapper(
699
730
  Func func,
700
- Exception_Handler const * handler = 0);
731
+ Data_Object<Exception_Handler> handler);
701
732
 
702
733
  static VALUE call(VALUE ruby_arg0);
703
734
 
704
735
  private:
705
736
  Func func_;
706
- Exception_Handler const * handler_;
737
+ Data_Object<Exception_Handler> handler_;
738
+ Address_Registration_Guard handler_guard_;
707
739
  };
708
740
 
709
741
  // ---------------------------------------------------------------------