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
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
  // ---------------------------------------------------------------------