rice 1.4.3 → 1.5.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 (54) hide show
  1. data/COPYING +2 -2
  2. data/Doxyfile +1 -1
  3. data/Makefile.in +296 -166
  4. data/README +18 -13
  5. data/Rakefile +3 -2
  6. data/aclocal.m4 +375 -248
  7. data/config.guess +296 -261
  8. data/config.sub +268 -94
  9. data/configure +2789 -3054
  10. data/configure.ac +1 -1
  11. data/depcomp +403 -197
  12. data/extconf.rb +14 -3
  13. data/install-sh +139 -119
  14. data/missing +154 -306
  15. data/rice/Builtin_Object_defn.hpp +0 -1
  16. data/rice/Constructor.hpp +31 -30
  17. data/rice/Data_Object_defn.hpp +8 -2
  18. data/rice/Hash.hpp +26 -9
  19. data/rice/Hash.ipp +52 -60
  20. data/rice/Makefile.am +0 -1
  21. data/rice/Makefile.in +278 -152
  22. data/rice/Module_impl.ipp +1 -1
  23. data/rice/VM.cpp +1 -11
  24. data/rice/config.hpp +3 -0
  25. data/rice/config.hpp.in +3 -0
  26. data/rice/detail/Auto_Function_Wrapper.hpp +69 -0
  27. data/rice/detail/Auto_Function_Wrapper.ipp +815 -512
  28. data/rice/detail/Auto_Member_Function_Wrapper.hpp +69 -0
  29. data/rice/detail/Auto_Member_Function_Wrapper.ipp +543 -272
  30. data/rice/detail/object_call.hpp +1 -0
  31. data/rice/detail/ruby.hpp +0 -9
  32. data/rice/detail/ruby_version_code.hpp +1 -1
  33. data/rice/detail/st.hpp +0 -38
  34. data/rice/protect.hpp +1 -0
  35. data/rice/protect.ipp +1 -0
  36. data/rice/to_from_ruby.ipp +1 -1
  37. data/ruby.ac +2 -2
  38. data/ruby/Makefile.in +221 -134
  39. data/ruby/lib/Makefile.in +133 -44
  40. data/ruby/lib/mkmf-rice.rb.in +1 -4
  41. data/ruby/lib/version.rb +1 -1
  42. data/sample/Makefile.in +96 -31
  43. data/test/Makefile.am +0 -1
  44. data/test/Makefile.in +617 -219
  45. data/test/ext/Makefile.in +96 -31
  46. data/test/test_Class.cpp +2 -2
  47. data/test/test_Data_Object.cpp +11 -11
  48. data/test/test_Hash.cpp +7 -4
  49. data/test/test_Module.cpp +17 -1
  50. data/test/test_To_From_Ruby.cpp +44 -0
  51. data/test/test_rice.rb +2 -2
  52. metadata +29 -43
  53. data/rice/Allocation_Strategies.hpp +0 -37
  54. data/test/test_Allocation_Strategies.cpp +0 -77
@@ -31,6 +31,8 @@ public:
31
31
  Data_Object<Exception_Handler> handler,
32
32
  Arguments* arguments = 0);
33
33
 
34
+ ~Auto_Member_Function_Wrapper();
35
+
34
36
  static VALUE call(int argc, VALUE* argv, VALUE self);
35
37
 
36
38
  private:
@@ -54,6 +56,8 @@ public:
54
56
  Data_Object<Exception_Handler> handler,
55
57
  Arguments* arguments = 0);
56
58
 
59
+ ~Auto_Member_Function_Wrapper();
60
+
57
61
  static VALUE call(int argc, VALUE* argv, VALUE self);
58
62
 
59
63
  private:
@@ -78,6 +82,8 @@ public:
78
82
  Data_Object<Exception_Handler> handler,
79
83
  Arguments* arguments = 0);
80
84
 
85
+ ~Auto_Member_Function_Wrapper();
86
+
81
87
  static VALUE call(int argc, VALUE* argv, VALUE self);
82
88
 
83
89
  private:
@@ -101,6 +107,8 @@ public:
101
107
  Data_Object<Exception_Handler> handler,
102
108
  Arguments* arguments = 0);
103
109
 
110
+ ~Auto_Member_Function_Wrapper();
111
+
104
112
  static VALUE call(int argc, VALUE* argv, VALUE self);
105
113
 
106
114
  private:
@@ -125,6 +133,8 @@ public:
125
133
  Data_Object<Exception_Handler> handler,
126
134
  Arguments* arguments = 0);
127
135
 
136
+ ~Auto_Member_Function_Wrapper();
137
+
128
138
  static VALUE call(int argc, VALUE* argv, VALUE self);
129
139
 
130
140
  private:
@@ -148,6 +158,8 @@ public:
148
158
  Data_Object<Exception_Handler> handler,
149
159
  Arguments* arguments = 0);
150
160
 
161
+ ~Auto_Member_Function_Wrapper();
162
+
151
163
  static VALUE call(int argc, VALUE* argv, VALUE self);
152
164
 
153
165
  private:
@@ -172,6 +184,8 @@ public:
172
184
  Data_Object<Exception_Handler> handler,
173
185
  Arguments* arguments = 0);
174
186
 
187
+ ~Auto_Member_Function_Wrapper();
188
+
175
189
  static VALUE call(int argc, VALUE* argv, VALUE self);
176
190
 
177
191
  private:
@@ -195,6 +209,8 @@ public:
195
209
  Data_Object<Exception_Handler> handler,
196
210
  Arguments* arguments = 0);
197
211
 
212
+ ~Auto_Member_Function_Wrapper();
213
+
198
214
  static VALUE call(int argc, VALUE* argv, VALUE self);
199
215
 
200
216
  private:
@@ -219,6 +235,8 @@ public:
219
235
  Data_Object<Exception_Handler> handler,
220
236
  Arguments* arguments = 0);
221
237
 
238
+ ~Auto_Member_Function_Wrapper();
239
+
222
240
  static VALUE call(int argc, VALUE* argv, VALUE self);
223
241
 
224
242
  private:
@@ -242,6 +260,8 @@ public:
242
260
  Data_Object<Exception_Handler> handler,
243
261
  Arguments* arguments = 0);
244
262
 
263
+ ~Auto_Member_Function_Wrapper();
264
+
245
265
  static VALUE call(int argc, VALUE* argv, VALUE self);
246
266
 
247
267
  private:
@@ -266,6 +286,8 @@ public:
266
286
  Data_Object<Exception_Handler> handler,
267
287
  Arguments* arguments = 0);
268
288
 
289
+ ~Auto_Member_Function_Wrapper();
290
+
269
291
  static VALUE call(int argc, VALUE* argv, VALUE self);
270
292
 
271
293
  private:
@@ -289,6 +311,8 @@ public:
289
311
  Data_Object<Exception_Handler> handler,
290
312
  Arguments* arguments = 0);
291
313
 
314
+ ~Auto_Member_Function_Wrapper();
315
+
292
316
  static VALUE call(int argc, VALUE* argv, VALUE self);
293
317
 
294
318
  private:
@@ -313,6 +337,8 @@ public:
313
337
  Data_Object<Exception_Handler> handler,
314
338
  Arguments* arguments = 0);
315
339
 
340
+ ~Auto_Member_Function_Wrapper();
341
+
316
342
  static VALUE call(int argc, VALUE* argv, VALUE self);
317
343
 
318
344
  private:
@@ -336,6 +362,8 @@ public:
336
362
  Data_Object<Exception_Handler> handler,
337
363
  Arguments* arguments = 0);
338
364
 
365
+ ~Auto_Member_Function_Wrapper();
366
+
339
367
  static VALUE call(int argc, VALUE* argv, VALUE self);
340
368
 
341
369
  private:
@@ -360,6 +388,8 @@ public:
360
388
  Data_Object<Exception_Handler> handler,
361
389
  Arguments* arguments = 0);
362
390
 
391
+ ~Auto_Member_Function_Wrapper();
392
+
363
393
  static VALUE call(int argc, VALUE* argv, VALUE self);
364
394
 
365
395
  private:
@@ -383,6 +413,8 @@ public:
383
413
  Data_Object<Exception_Handler> handler,
384
414
  Arguments* arguments = 0);
385
415
 
416
+ ~Auto_Member_Function_Wrapper();
417
+
386
418
  static VALUE call(int argc, VALUE* argv, VALUE self);
387
419
 
388
420
  private:
@@ -407,6 +439,8 @@ public:
407
439
  Data_Object<Exception_Handler> handler,
408
440
  Arguments* arguments = 0);
409
441
 
442
+ ~Auto_Member_Function_Wrapper();
443
+
410
444
  static VALUE call(int argc, VALUE* argv, VALUE self);
411
445
 
412
446
  private:
@@ -430,6 +464,8 @@ public:
430
464
  Data_Object<Exception_Handler> handler,
431
465
  Arguments* arguments = 0);
432
466
 
467
+ ~Auto_Member_Function_Wrapper();
468
+
433
469
  static VALUE call(int argc, VALUE* argv, VALUE self);
434
470
 
435
471
  private:
@@ -454,6 +490,8 @@ public:
454
490
  Data_Object<Exception_Handler> handler,
455
491
  Arguments* arguments = 0);
456
492
 
493
+ ~Auto_Member_Function_Wrapper();
494
+
457
495
  static VALUE call(int argc, VALUE* argv, VALUE self);
458
496
 
459
497
  private:
@@ -477,6 +515,8 @@ public:
477
515
  Data_Object<Exception_Handler> handler,
478
516
  Arguments* arguments = 0);
479
517
 
518
+ ~Auto_Member_Function_Wrapper();
519
+
480
520
  static VALUE call(int argc, VALUE* argv, VALUE self);
481
521
 
482
522
  private:
@@ -501,6 +541,8 @@ public:
501
541
  Data_Object<Exception_Handler> handler,
502
542
  Arguments* arguments = 0);
503
543
 
544
+ ~Auto_Member_Function_Wrapper();
545
+
504
546
  static VALUE call(int argc, VALUE* argv, VALUE self);
505
547
 
506
548
  private:
@@ -524,6 +566,8 @@ public:
524
566
  Data_Object<Exception_Handler> handler,
525
567
  Arguments* arguments = 0);
526
568
 
569
+ ~Auto_Member_Function_Wrapper();
570
+
527
571
  static VALUE call(int argc, VALUE* argv, VALUE self);
528
572
 
529
573
  private:
@@ -548,6 +592,8 @@ public:
548
592
  Data_Object<Exception_Handler> handler,
549
593
  Arguments* arguments = 0);
550
594
 
595
+ ~Auto_Member_Function_Wrapper();
596
+
551
597
  static VALUE call(int argc, VALUE* argv, VALUE self);
552
598
 
553
599
  private:
@@ -571,6 +617,8 @@ public:
571
617
  Data_Object<Exception_Handler> handler,
572
618
  Arguments* arguments = 0);
573
619
 
620
+ ~Auto_Member_Function_Wrapper();
621
+
574
622
  static VALUE call(int argc, VALUE* argv, VALUE self);
575
623
 
576
624
  private:
@@ -595,6 +643,8 @@ public:
595
643
  Data_Object<Exception_Handler> handler,
596
644
  Arguments* arguments = 0);
597
645
 
646
+ ~Auto_Member_Function_Wrapper();
647
+
598
648
  static VALUE call(int argc, VALUE* argv, VALUE self);
599
649
 
600
650
  private:
@@ -618,6 +668,8 @@ public:
618
668
  Data_Object<Exception_Handler> handler,
619
669
  Arguments* arguments = 0);
620
670
 
671
+ ~Auto_Member_Function_Wrapper();
672
+
621
673
  static VALUE call(int argc, VALUE* argv, VALUE self);
622
674
 
623
675
  private:
@@ -642,6 +694,8 @@ public:
642
694
  Data_Object<Exception_Handler> handler,
643
695
  Arguments* arguments = 0);
644
696
 
697
+ ~Auto_Member_Function_Wrapper();
698
+
645
699
  static VALUE call(int argc, VALUE* argv, VALUE self);
646
700
 
647
701
  private:
@@ -665,6 +719,8 @@ public:
665
719
  Data_Object<Exception_Handler> handler,
666
720
  Arguments* arguments = 0);
667
721
 
722
+ ~Auto_Member_Function_Wrapper();
723
+
668
724
  static VALUE call(int argc, VALUE* argv, VALUE self);
669
725
 
670
726
  private:
@@ -689,6 +745,8 @@ public:
689
745
  Data_Object<Exception_Handler> handler,
690
746
  Arguments* arguments = 0);
691
747
 
748
+ ~Auto_Member_Function_Wrapper();
749
+
692
750
  static VALUE call(int argc, VALUE* argv, VALUE self);
693
751
 
694
752
  private:
@@ -712,6 +770,8 @@ public:
712
770
  Data_Object<Exception_Handler> handler,
713
771
  Arguments* arguments = 0);
714
772
 
773
+ ~Auto_Member_Function_Wrapper();
774
+
715
775
  static VALUE call(int argc, VALUE* argv, VALUE self);
716
776
 
717
777
  private:
@@ -736,6 +796,8 @@ public:
736
796
  Data_Object<Exception_Handler> handler,
737
797
  Arguments* arguments = 0);
738
798
 
799
+ ~Auto_Member_Function_Wrapper();
800
+
739
801
  static VALUE call(int argc, VALUE* argv, VALUE self);
740
802
 
741
803
  private:
@@ -759,6 +821,8 @@ public:
759
821
  Data_Object<Exception_Handler> handler,
760
822
  Arguments* arguments = 0);
761
823
 
824
+ ~Auto_Member_Function_Wrapper();
825
+
762
826
  static VALUE call(int argc, VALUE* argv, VALUE self);
763
827
 
764
828
  private:
@@ -769,6 +833,7 @@ private:
769
833
  };
770
834
 
771
835
  // ---------------------------------------------------------------------
836
+
772
837
  template<typename Func_T, typename Ret_T, typename Self_T>
773
838
  class Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T>
774
839
  : public Wrapped_Function
@@ -783,6 +848,8 @@ public:
783
848
  Data_Object<Exception_Handler> handler,
784
849
  Arguments* arguments = 0);
785
850
 
851
+ ~Auto_Member_Function_Wrapper();
852
+
786
853
  static VALUE call(int argc, VALUE* argv, VALUE self);
787
854
 
788
855
  private:
@@ -806,6 +873,8 @@ public:
806
873
  Data_Object<Exception_Handler> handler,
807
874
  Arguments* arguments = 0);
808
875
 
876
+ ~Auto_Member_Function_Wrapper();
877
+
809
878
  static VALUE call(int argc, VALUE* argv, VALUE self);
810
879
 
811
880
  private:
@@ -37,6 +37,13 @@ Auto_Member_Function_Wrapper(
37
37
  }
38
38
  }
39
39
 
40
+ template<typename Func_T, typename Ret_T, typename Self_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>
41
+ Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T, Arg15_T>::
42
+ ~Auto_Member_Function_Wrapper()
43
+ {
44
+ if(arguments_) { delete arguments_; }
45
+ }
46
+
40
47
  template<typename Func_T, typename Ret_T, typename Self_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>
41
48
  VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T, Arg15_T>::
42
49
  call(int argc, VALUE* argv, VALUE self)
@@ -54,38 +61,39 @@ call(int argc, VALUE* argv, VALUE self)
54
61
 
55
62
  Self_T * obj = from_ruby<Self_T *>(self);
56
63
 
57
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
64
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
58
65
  Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
59
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
66
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
60
67
  Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
61
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
68
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
62
69
  Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
63
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
70
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
64
71
  Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
65
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
72
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
66
73
  Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
67
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
74
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
68
75
  Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
69
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
76
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
70
77
  Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
71
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
78
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
72
79
  Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
73
- typedef typename sanitize< Arg8_T >::Type Arg8_Type;
80
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
74
81
  Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(8, varg8);
75
- typedef typename sanitize< Arg9_T >::Type Arg9_Type;
82
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
76
83
  Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(9, varg9);
77
- typedef typename sanitize< Arg10_T >::Type Arg10_Type;
84
+ typedef typename sanitize< Arg10_T >::Type Arg10_Type;
78
85
  Arg10_Type arg10 = args->getArgumentOrDefault<Arg10_Type>(10, varg10);
79
- typedef typename sanitize< Arg11_T >::Type Arg11_Type;
86
+ typedef typename sanitize< Arg11_T >::Type Arg11_Type;
80
87
  Arg11_Type arg11 = args->getArgumentOrDefault<Arg11_Type>(11, varg11);
81
- typedef typename sanitize< Arg12_T >::Type Arg12_Type;
88
+ typedef typename sanitize< Arg12_T >::Type Arg12_Type;
82
89
  Arg12_Type arg12 = args->getArgumentOrDefault<Arg12_Type>(12, varg12);
83
- typedef typename sanitize< Arg13_T >::Type Arg13_Type;
90
+ typedef typename sanitize< Arg13_T >::Type Arg13_Type;
84
91
  Arg13_Type arg13 = args->getArgumentOrDefault<Arg13_Type>(13, varg13);
85
- typedef typename sanitize< Arg14_T >::Type Arg14_Type;
92
+ typedef typename sanitize< Arg14_T >::Type Arg14_Type;
86
93
  Arg14_Type arg14 = args->getArgumentOrDefault<Arg14_Type>(14, varg14);
87
- typedef typename sanitize< Arg15_T >::Type Arg15_Type;
94
+ typedef typename sanitize< Arg15_T >::Type Arg15_Type;
88
95
  Arg15_Type arg15 = args->getArgumentOrDefault<Arg15_Type>(15, varg15);
96
+
89
97
  Func func = wrapper->func_;
90
98
  return to_ruby((*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15));
91
99
  }
@@ -125,6 +133,13 @@ Auto_Member_Function_Wrapper(
125
133
  }
126
134
  }
127
135
 
136
+ template<typename Func_T, typename Self_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>
137
+ Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T, Arg15_T>::
138
+ ~Auto_Member_Function_Wrapper()
139
+ {
140
+ if(arguments_) { delete arguments_; }
141
+ }
142
+
128
143
  template<typename Func_T, typename Self_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>
129
144
  VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T, Arg15_T>::
130
145
  call(int argc, VALUE* argv, VALUE self)
@@ -142,38 +157,39 @@ call(int argc, VALUE* argv, VALUE self)
142
157
 
143
158
  Self_T * obj = from_ruby<Self_T *>(self);
144
159
 
145
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
160
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
146
161
  Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
147
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
162
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
148
163
  Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
149
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
164
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
150
165
  Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
151
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
166
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
152
167
  Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
153
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
168
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
154
169
  Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
155
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
170
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
156
171
  Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
157
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
172
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
158
173
  Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
159
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
174
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
160
175
  Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
161
- typedef typename sanitize< Arg8_T >::Type Arg8_Type;
176
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
162
177
  Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(8, varg8);
163
- typedef typename sanitize< Arg9_T >::Type Arg9_Type;
178
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
164
179
  Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(9, varg9);
165
- typedef typename sanitize< Arg10_T >::Type Arg10_Type;
180
+ typedef typename sanitize< Arg10_T >::Type Arg10_Type;
166
181
  Arg10_Type arg10 = args->getArgumentOrDefault<Arg10_Type>(10, varg10);
167
- typedef typename sanitize< Arg11_T >::Type Arg11_Type;
182
+ typedef typename sanitize< Arg11_T >::Type Arg11_Type;
168
183
  Arg11_Type arg11 = args->getArgumentOrDefault<Arg11_Type>(11, varg11);
169
- typedef typename sanitize< Arg12_T >::Type Arg12_Type;
184
+ typedef typename sanitize< Arg12_T >::Type Arg12_Type;
170
185
  Arg12_Type arg12 = args->getArgumentOrDefault<Arg12_Type>(12, varg12);
171
- typedef typename sanitize< Arg13_T >::Type Arg13_Type;
186
+ typedef typename sanitize< Arg13_T >::Type Arg13_Type;
172
187
  Arg13_Type arg13 = args->getArgumentOrDefault<Arg13_Type>(13, varg13);
173
- typedef typename sanitize< Arg14_T >::Type Arg14_Type;
188
+ typedef typename sanitize< Arg14_T >::Type Arg14_Type;
174
189
  Arg14_Type arg14 = args->getArgumentOrDefault<Arg14_Type>(14, varg14);
175
- typedef typename sanitize< Arg15_T >::Type Arg15_Type;
190
+ typedef typename sanitize< Arg15_T >::Type Arg15_Type;
176
191
  Arg15_Type arg15 = args->getArgumentOrDefault<Arg15_Type>(15, varg15);
192
+
177
193
  Func func = wrapper->func_;
178
194
  (*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15);
179
195
  return Qnil;
@@ -215,6 +231,13 @@ Auto_Member_Function_Wrapper(
215
231
  }
216
232
  }
217
233
 
234
+ template<typename Func_T, typename Ret_T, typename Self_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>
235
+ Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T>::
236
+ ~Auto_Member_Function_Wrapper()
237
+ {
238
+ if(arguments_) { delete arguments_; }
239
+ }
240
+
218
241
  template<typename Func_T, typename Ret_T, typename Self_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>
219
242
  VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T>::
220
243
  call(int argc, VALUE* argv, VALUE self)
@@ -232,36 +255,37 @@ call(int argc, VALUE* argv, VALUE self)
232
255
 
233
256
  Self_T * obj = from_ruby<Self_T *>(self);
234
257
 
235
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
258
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
236
259
  Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
237
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
260
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
238
261
  Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
239
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
262
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
240
263
  Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
241
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
264
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
242
265
  Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
243
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
266
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
244
267
  Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
245
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
268
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
246
269
  Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
247
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
270
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
248
271
  Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
249
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
272
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
250
273
  Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
251
- typedef typename sanitize< Arg8_T >::Type Arg8_Type;
274
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
252
275
  Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(8, varg8);
253
- typedef typename sanitize< Arg9_T >::Type Arg9_Type;
276
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
254
277
  Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(9, varg9);
255
- typedef typename sanitize< Arg10_T >::Type Arg10_Type;
278
+ typedef typename sanitize< Arg10_T >::Type Arg10_Type;
256
279
  Arg10_Type arg10 = args->getArgumentOrDefault<Arg10_Type>(10, varg10);
257
- typedef typename sanitize< Arg11_T >::Type Arg11_Type;
280
+ typedef typename sanitize< Arg11_T >::Type Arg11_Type;
258
281
  Arg11_Type arg11 = args->getArgumentOrDefault<Arg11_Type>(11, varg11);
259
- typedef typename sanitize< Arg12_T >::Type Arg12_Type;
282
+ typedef typename sanitize< Arg12_T >::Type Arg12_Type;
260
283
  Arg12_Type arg12 = args->getArgumentOrDefault<Arg12_Type>(12, varg12);
261
- typedef typename sanitize< Arg13_T >::Type Arg13_Type;
284
+ typedef typename sanitize< Arg13_T >::Type Arg13_Type;
262
285
  Arg13_Type arg13 = args->getArgumentOrDefault<Arg13_Type>(13, varg13);
263
- typedef typename sanitize< Arg14_T >::Type Arg14_Type;
286
+ typedef typename sanitize< Arg14_T >::Type Arg14_Type;
264
287
  Arg14_Type arg14 = args->getArgumentOrDefault<Arg14_Type>(14, varg14);
288
+
265
289
  Func func = wrapper->func_;
266
290
  return to_ruby((*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14));
267
291
  }
@@ -301,6 +325,13 @@ Auto_Member_Function_Wrapper(
301
325
  }
302
326
  }
303
327
 
328
+ template<typename Func_T, typename Self_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>
329
+ Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T>::
330
+ ~Auto_Member_Function_Wrapper()
331
+ {
332
+ if(arguments_) { delete arguments_; }
333
+ }
334
+
304
335
  template<typename Func_T, typename Self_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>
305
336
  VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T>::
306
337
  call(int argc, VALUE* argv, VALUE self)
@@ -318,36 +349,37 @@ call(int argc, VALUE* argv, VALUE self)
318
349
 
319
350
  Self_T * obj = from_ruby<Self_T *>(self);
320
351
 
321
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
352
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
322
353
  Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
323
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
354
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
324
355
  Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
325
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
356
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
326
357
  Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
327
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
358
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
328
359
  Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
329
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
360
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
330
361
  Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
331
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
362
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
332
363
  Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
333
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
364
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
334
365
  Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
335
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
366
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
336
367
  Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
337
- typedef typename sanitize< Arg8_T >::Type Arg8_Type;
368
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
338
369
  Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(8, varg8);
339
- typedef typename sanitize< Arg9_T >::Type Arg9_Type;
370
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
340
371
  Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(9, varg9);
341
- typedef typename sanitize< Arg10_T >::Type Arg10_Type;
372
+ typedef typename sanitize< Arg10_T >::Type Arg10_Type;
342
373
  Arg10_Type arg10 = args->getArgumentOrDefault<Arg10_Type>(10, varg10);
343
- typedef typename sanitize< Arg11_T >::Type Arg11_Type;
374
+ typedef typename sanitize< Arg11_T >::Type Arg11_Type;
344
375
  Arg11_Type arg11 = args->getArgumentOrDefault<Arg11_Type>(11, varg11);
345
- typedef typename sanitize< Arg12_T >::Type Arg12_Type;
376
+ typedef typename sanitize< Arg12_T >::Type Arg12_Type;
346
377
  Arg12_Type arg12 = args->getArgumentOrDefault<Arg12_Type>(12, varg12);
347
- typedef typename sanitize< Arg13_T >::Type Arg13_Type;
378
+ typedef typename sanitize< Arg13_T >::Type Arg13_Type;
348
379
  Arg13_Type arg13 = args->getArgumentOrDefault<Arg13_Type>(13, varg13);
349
- typedef typename sanitize< Arg14_T >::Type Arg14_Type;
380
+ typedef typename sanitize< Arg14_T >::Type Arg14_Type;
350
381
  Arg14_Type arg14 = args->getArgumentOrDefault<Arg14_Type>(14, varg14);
382
+
351
383
  Func func = wrapper->func_;
352
384
  (*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14);
353
385
  return Qnil;
@@ -389,6 +421,13 @@ Auto_Member_Function_Wrapper(
389
421
  }
390
422
  }
391
423
 
424
+ template<typename Func_T, typename Ret_T, typename Self_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>
425
+ Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T>::
426
+ ~Auto_Member_Function_Wrapper()
427
+ {
428
+ if(arguments_) { delete arguments_; }
429
+ }
430
+
392
431
  template<typename Func_T, typename Ret_T, typename Self_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>
393
432
  VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T>::
394
433
  call(int argc, VALUE* argv, VALUE self)
@@ -406,34 +445,35 @@ call(int argc, VALUE* argv, VALUE self)
406
445
 
407
446
  Self_T * obj = from_ruby<Self_T *>(self);
408
447
 
409
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
448
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
410
449
  Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
411
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
450
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
412
451
  Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
413
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
452
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
414
453
  Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
415
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
454
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
416
455
  Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
417
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
456
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
418
457
  Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
419
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
458
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
420
459
  Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
421
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
460
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
422
461
  Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
423
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
462
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
424
463
  Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
425
- typedef typename sanitize< Arg8_T >::Type Arg8_Type;
464
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
426
465
  Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(8, varg8);
427
- typedef typename sanitize< Arg9_T >::Type Arg9_Type;
466
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
428
467
  Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(9, varg9);
429
- typedef typename sanitize< Arg10_T >::Type Arg10_Type;
468
+ typedef typename sanitize< Arg10_T >::Type Arg10_Type;
430
469
  Arg10_Type arg10 = args->getArgumentOrDefault<Arg10_Type>(10, varg10);
431
- typedef typename sanitize< Arg11_T >::Type Arg11_Type;
470
+ typedef typename sanitize< Arg11_T >::Type Arg11_Type;
432
471
  Arg11_Type arg11 = args->getArgumentOrDefault<Arg11_Type>(11, varg11);
433
- typedef typename sanitize< Arg12_T >::Type Arg12_Type;
472
+ typedef typename sanitize< Arg12_T >::Type Arg12_Type;
434
473
  Arg12_Type arg12 = args->getArgumentOrDefault<Arg12_Type>(12, varg12);
435
- typedef typename sanitize< Arg13_T >::Type Arg13_Type;
474
+ typedef typename sanitize< Arg13_T >::Type Arg13_Type;
436
475
  Arg13_Type arg13 = args->getArgumentOrDefault<Arg13_Type>(13, varg13);
476
+
437
477
  Func func = wrapper->func_;
438
478
  return to_ruby((*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13));
439
479
  }
@@ -473,6 +513,13 @@ Auto_Member_Function_Wrapper(
473
513
  }
474
514
  }
475
515
 
516
+ template<typename Func_T, typename Self_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>
517
+ Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T>::
518
+ ~Auto_Member_Function_Wrapper()
519
+ {
520
+ if(arguments_) { delete arguments_; }
521
+ }
522
+
476
523
  template<typename Func_T, typename Self_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>
477
524
  VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T>::
478
525
  call(int argc, VALUE* argv, VALUE self)
@@ -490,34 +537,35 @@ call(int argc, VALUE* argv, VALUE self)
490
537
 
491
538
  Self_T * obj = from_ruby<Self_T *>(self);
492
539
 
493
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
540
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
494
541
  Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
495
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
542
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
496
543
  Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
497
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
544
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
498
545
  Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
499
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
546
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
500
547
  Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
501
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
548
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
502
549
  Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
503
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
550
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
504
551
  Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
505
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
552
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
506
553
  Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
507
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
554
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
508
555
  Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
509
- typedef typename sanitize< Arg8_T >::Type Arg8_Type;
556
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
510
557
  Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(8, varg8);
511
- typedef typename sanitize< Arg9_T >::Type Arg9_Type;
558
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
512
559
  Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(9, varg9);
513
- typedef typename sanitize< Arg10_T >::Type Arg10_Type;
560
+ typedef typename sanitize< Arg10_T >::Type Arg10_Type;
514
561
  Arg10_Type arg10 = args->getArgumentOrDefault<Arg10_Type>(10, varg10);
515
- typedef typename sanitize< Arg11_T >::Type Arg11_Type;
562
+ typedef typename sanitize< Arg11_T >::Type Arg11_Type;
516
563
  Arg11_Type arg11 = args->getArgumentOrDefault<Arg11_Type>(11, varg11);
517
- typedef typename sanitize< Arg12_T >::Type Arg12_Type;
564
+ typedef typename sanitize< Arg12_T >::Type Arg12_Type;
518
565
  Arg12_Type arg12 = args->getArgumentOrDefault<Arg12_Type>(12, varg12);
519
- typedef typename sanitize< Arg13_T >::Type Arg13_Type;
566
+ typedef typename sanitize< Arg13_T >::Type Arg13_Type;
520
567
  Arg13_Type arg13 = args->getArgumentOrDefault<Arg13_Type>(13, varg13);
568
+
521
569
  Func func = wrapper->func_;
522
570
  (*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13);
523
571
  return Qnil;
@@ -559,6 +607,13 @@ Auto_Member_Function_Wrapper(
559
607
  }
560
608
  }
561
609
 
610
+ template<typename Func_T, typename Ret_T, typename Self_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>
611
+ Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T>::
612
+ ~Auto_Member_Function_Wrapper()
613
+ {
614
+ if(arguments_) { delete arguments_; }
615
+ }
616
+
562
617
  template<typename Func_T, typename Ret_T, typename Self_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>
563
618
  VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T>::
564
619
  call(int argc, VALUE* argv, VALUE self)
@@ -576,32 +631,33 @@ call(int argc, VALUE* argv, VALUE self)
576
631
 
577
632
  Self_T * obj = from_ruby<Self_T *>(self);
578
633
 
579
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
634
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
580
635
  Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
581
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
636
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
582
637
  Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
583
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
638
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
584
639
  Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
585
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
640
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
586
641
  Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
587
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
642
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
588
643
  Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
589
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
644
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
590
645
  Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
591
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
646
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
592
647
  Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
593
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
648
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
594
649
  Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
595
- typedef typename sanitize< Arg8_T >::Type Arg8_Type;
650
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
596
651
  Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(8, varg8);
597
- typedef typename sanitize< Arg9_T >::Type Arg9_Type;
652
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
598
653
  Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(9, varg9);
599
- typedef typename sanitize< Arg10_T >::Type Arg10_Type;
654
+ typedef typename sanitize< Arg10_T >::Type Arg10_Type;
600
655
  Arg10_Type arg10 = args->getArgumentOrDefault<Arg10_Type>(10, varg10);
601
- typedef typename sanitize< Arg11_T >::Type Arg11_Type;
656
+ typedef typename sanitize< Arg11_T >::Type Arg11_Type;
602
657
  Arg11_Type arg11 = args->getArgumentOrDefault<Arg11_Type>(11, varg11);
603
- typedef typename sanitize< Arg12_T >::Type Arg12_Type;
658
+ typedef typename sanitize< Arg12_T >::Type Arg12_Type;
604
659
  Arg12_Type arg12 = args->getArgumentOrDefault<Arg12_Type>(12, varg12);
660
+
605
661
  Func func = wrapper->func_;
606
662
  return to_ruby((*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12));
607
663
  }
@@ -641,6 +697,13 @@ Auto_Member_Function_Wrapper(
641
697
  }
642
698
  }
643
699
 
700
+ template<typename Func_T, typename Self_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>
701
+ Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T>::
702
+ ~Auto_Member_Function_Wrapper()
703
+ {
704
+ if(arguments_) { delete arguments_; }
705
+ }
706
+
644
707
  template<typename Func_T, typename Self_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>
645
708
  VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T>::
646
709
  call(int argc, VALUE* argv, VALUE self)
@@ -658,32 +721,33 @@ call(int argc, VALUE* argv, VALUE self)
658
721
 
659
722
  Self_T * obj = from_ruby<Self_T *>(self);
660
723
 
661
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
724
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
662
725
  Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
663
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
726
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
664
727
  Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
665
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
728
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
666
729
  Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
667
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
730
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
668
731
  Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
669
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
732
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
670
733
  Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
671
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
734
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
672
735
  Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
673
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
736
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
674
737
  Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
675
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
738
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
676
739
  Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
677
- typedef typename sanitize< Arg8_T >::Type Arg8_Type;
740
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
678
741
  Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(8, varg8);
679
- typedef typename sanitize< Arg9_T >::Type Arg9_Type;
742
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
680
743
  Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(9, varg9);
681
- typedef typename sanitize< Arg10_T >::Type Arg10_Type;
744
+ typedef typename sanitize< Arg10_T >::Type Arg10_Type;
682
745
  Arg10_Type arg10 = args->getArgumentOrDefault<Arg10_Type>(10, varg10);
683
- typedef typename sanitize< Arg11_T >::Type Arg11_Type;
746
+ typedef typename sanitize< Arg11_T >::Type Arg11_Type;
684
747
  Arg11_Type arg11 = args->getArgumentOrDefault<Arg11_Type>(11, varg11);
685
- typedef typename sanitize< Arg12_T >::Type Arg12_Type;
748
+ typedef typename sanitize< Arg12_T >::Type Arg12_Type;
686
749
  Arg12_Type arg12 = args->getArgumentOrDefault<Arg12_Type>(12, varg12);
750
+
687
751
  Func func = wrapper->func_;
688
752
  (*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12);
689
753
  return Qnil;
@@ -725,6 +789,13 @@ Auto_Member_Function_Wrapper(
725
789
  }
726
790
  }
727
791
 
792
+ template<typename Func_T, typename Ret_T, typename Self_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>
793
+ Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T>::
794
+ ~Auto_Member_Function_Wrapper()
795
+ {
796
+ if(arguments_) { delete arguments_; }
797
+ }
798
+
728
799
  template<typename Func_T, typename Ret_T, typename Self_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>
729
800
  VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T>::
730
801
  call(int argc, VALUE* argv, VALUE self)
@@ -742,30 +813,31 @@ call(int argc, VALUE* argv, VALUE self)
742
813
 
743
814
  Self_T * obj = from_ruby<Self_T *>(self);
744
815
 
745
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
816
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
746
817
  Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
747
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
818
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
748
819
  Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
749
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
820
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
750
821
  Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
751
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
822
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
752
823
  Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
753
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
824
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
754
825
  Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
755
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
826
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
756
827
  Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
757
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
828
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
758
829
  Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
759
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
830
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
760
831
  Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
761
- typedef typename sanitize< Arg8_T >::Type Arg8_Type;
832
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
762
833
  Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(8, varg8);
763
- typedef typename sanitize< Arg9_T >::Type Arg9_Type;
834
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
764
835
  Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(9, varg9);
765
- typedef typename sanitize< Arg10_T >::Type Arg10_Type;
836
+ typedef typename sanitize< Arg10_T >::Type Arg10_Type;
766
837
  Arg10_Type arg10 = args->getArgumentOrDefault<Arg10_Type>(10, varg10);
767
- typedef typename sanitize< Arg11_T >::Type Arg11_Type;
838
+ typedef typename sanitize< Arg11_T >::Type Arg11_Type;
768
839
  Arg11_Type arg11 = args->getArgumentOrDefault<Arg11_Type>(11, varg11);
840
+
769
841
  Func func = wrapper->func_;
770
842
  return to_ruby((*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11));
771
843
  }
@@ -805,6 +877,13 @@ Auto_Member_Function_Wrapper(
805
877
  }
806
878
  }
807
879
 
880
+ template<typename Func_T, typename Self_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>
881
+ Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T>::
882
+ ~Auto_Member_Function_Wrapper()
883
+ {
884
+ if(arguments_) { delete arguments_; }
885
+ }
886
+
808
887
  template<typename Func_T, typename Self_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>
809
888
  VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T>::
810
889
  call(int argc, VALUE* argv, VALUE self)
@@ -822,30 +901,31 @@ call(int argc, VALUE* argv, VALUE self)
822
901
 
823
902
  Self_T * obj = from_ruby<Self_T *>(self);
824
903
 
825
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
904
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
826
905
  Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
827
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
906
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
828
907
  Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
829
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
908
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
830
909
  Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
831
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
910
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
832
911
  Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
833
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
912
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
834
913
  Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
835
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
914
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
836
915
  Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
837
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
916
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
838
917
  Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
839
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
918
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
840
919
  Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
841
- typedef typename sanitize< Arg8_T >::Type Arg8_Type;
920
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
842
921
  Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(8, varg8);
843
- typedef typename sanitize< Arg9_T >::Type Arg9_Type;
922
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
844
923
  Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(9, varg9);
845
- typedef typename sanitize< Arg10_T >::Type Arg10_Type;
924
+ typedef typename sanitize< Arg10_T >::Type Arg10_Type;
846
925
  Arg10_Type arg10 = args->getArgumentOrDefault<Arg10_Type>(10, varg10);
847
- typedef typename sanitize< Arg11_T >::Type Arg11_Type;
926
+ typedef typename sanitize< Arg11_T >::Type Arg11_Type;
848
927
  Arg11_Type arg11 = args->getArgumentOrDefault<Arg11_Type>(11, varg11);
928
+
849
929
  Func func = wrapper->func_;
850
930
  (*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11);
851
931
  return Qnil;
@@ -887,6 +967,13 @@ Auto_Member_Function_Wrapper(
887
967
  }
888
968
  }
889
969
 
970
+ template<typename Func_T, typename Ret_T, typename Self_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>
971
+ Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T>::
972
+ ~Auto_Member_Function_Wrapper()
973
+ {
974
+ if(arguments_) { delete arguments_; }
975
+ }
976
+
890
977
  template<typename Func_T, typename Ret_T, typename Self_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>
891
978
  VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T>::
892
979
  call(int argc, VALUE* argv, VALUE self)
@@ -904,28 +991,29 @@ call(int argc, VALUE* argv, VALUE self)
904
991
 
905
992
  Self_T * obj = from_ruby<Self_T *>(self);
906
993
 
907
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
994
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
908
995
  Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
909
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
996
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
910
997
  Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
911
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
998
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
912
999
  Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
913
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
1000
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
914
1001
  Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
915
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
1002
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
916
1003
  Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
917
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
1004
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
918
1005
  Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
919
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
1006
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
920
1007
  Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
921
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
1008
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
922
1009
  Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
923
- typedef typename sanitize< Arg8_T >::Type Arg8_Type;
1010
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
924
1011
  Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(8, varg8);
925
- typedef typename sanitize< Arg9_T >::Type Arg9_Type;
1012
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
926
1013
  Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(9, varg9);
927
- typedef typename sanitize< Arg10_T >::Type Arg10_Type;
1014
+ typedef typename sanitize< Arg10_T >::Type Arg10_Type;
928
1015
  Arg10_Type arg10 = args->getArgumentOrDefault<Arg10_Type>(10, varg10);
1016
+
929
1017
  Func func = wrapper->func_;
930
1018
  return to_ruby((*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10));
931
1019
  }
@@ -965,6 +1053,13 @@ Auto_Member_Function_Wrapper(
965
1053
  }
966
1054
  }
967
1055
 
1056
+ template<typename Func_T, typename Self_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>
1057
+ Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T>::
1058
+ ~Auto_Member_Function_Wrapper()
1059
+ {
1060
+ if(arguments_) { delete arguments_; }
1061
+ }
1062
+
968
1063
  template<typename Func_T, typename Self_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>
969
1064
  VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T>::
970
1065
  call(int argc, VALUE* argv, VALUE self)
@@ -982,28 +1077,29 @@ call(int argc, VALUE* argv, VALUE self)
982
1077
 
983
1078
  Self_T * obj = from_ruby<Self_T *>(self);
984
1079
 
985
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
1080
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
986
1081
  Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
987
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
1082
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
988
1083
  Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
989
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
1084
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
990
1085
  Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
991
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
1086
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
992
1087
  Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
993
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
1088
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
994
1089
  Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
995
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
1090
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
996
1091
  Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
997
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
1092
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
998
1093
  Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
999
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
1094
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
1000
1095
  Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
1001
- typedef typename sanitize< Arg8_T >::Type Arg8_Type;
1096
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
1002
1097
  Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(8, varg8);
1003
- typedef typename sanitize< Arg9_T >::Type Arg9_Type;
1098
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
1004
1099
  Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(9, varg9);
1005
- typedef typename sanitize< Arg10_T >::Type Arg10_Type;
1100
+ typedef typename sanitize< Arg10_T >::Type Arg10_Type;
1006
1101
  Arg10_Type arg10 = args->getArgumentOrDefault<Arg10_Type>(10, varg10);
1102
+
1007
1103
  Func func = wrapper->func_;
1008
1104
  (*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10);
1009
1105
  return Qnil;
@@ -1045,6 +1141,13 @@ Auto_Member_Function_Wrapper(
1045
1141
  }
1046
1142
  }
1047
1143
 
1144
+ template<typename Func_T, typename Ret_T, typename Self_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>
1145
+ Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T>::
1146
+ ~Auto_Member_Function_Wrapper()
1147
+ {
1148
+ if(arguments_) { delete arguments_; }
1149
+ }
1150
+
1048
1151
  template<typename Func_T, typename Ret_T, typename Self_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>
1049
1152
  VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T>::
1050
1153
  call(int argc, VALUE* argv, VALUE self)
@@ -1062,26 +1165,27 @@ call(int argc, VALUE* argv, VALUE self)
1062
1165
 
1063
1166
  Self_T * obj = from_ruby<Self_T *>(self);
1064
1167
 
1065
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
1168
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
1066
1169
  Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
1067
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
1170
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
1068
1171
  Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
1069
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
1172
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
1070
1173
  Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
1071
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
1174
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
1072
1175
  Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
1073
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
1176
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
1074
1177
  Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
1075
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
1178
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
1076
1179
  Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
1077
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
1180
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
1078
1181
  Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
1079
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
1182
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
1080
1183
  Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
1081
- typedef typename sanitize< Arg8_T >::Type Arg8_Type;
1184
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
1082
1185
  Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(8, varg8);
1083
- typedef typename sanitize< Arg9_T >::Type Arg9_Type;
1186
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
1084
1187
  Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(9, varg9);
1188
+
1085
1189
  Func func = wrapper->func_;
1086
1190
  return to_ruby((*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9));
1087
1191
  }
@@ -1121,6 +1225,13 @@ Auto_Member_Function_Wrapper(
1121
1225
  }
1122
1226
  }
1123
1227
 
1228
+ template<typename Func_T, typename Self_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>
1229
+ Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T>::
1230
+ ~Auto_Member_Function_Wrapper()
1231
+ {
1232
+ if(arguments_) { delete arguments_; }
1233
+ }
1234
+
1124
1235
  template<typename Func_T, typename Self_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>
1125
1236
  VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T>::
1126
1237
  call(int argc, VALUE* argv, VALUE self)
@@ -1138,26 +1249,27 @@ call(int argc, VALUE* argv, VALUE self)
1138
1249
 
1139
1250
  Self_T * obj = from_ruby<Self_T *>(self);
1140
1251
 
1141
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
1252
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
1142
1253
  Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
1143
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
1254
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
1144
1255
  Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
1145
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
1256
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
1146
1257
  Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
1147
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
1258
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
1148
1259
  Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
1149
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
1260
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
1150
1261
  Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
1151
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
1262
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
1152
1263
  Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
1153
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
1264
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
1154
1265
  Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
1155
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
1266
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
1156
1267
  Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
1157
- typedef typename sanitize< Arg8_T >::Type Arg8_Type;
1268
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
1158
1269
  Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(8, varg8);
1159
- typedef typename sanitize< Arg9_T >::Type Arg9_Type;
1270
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
1160
1271
  Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(9, varg9);
1272
+
1161
1273
  Func func = wrapper->func_;
1162
1274
  (*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
1163
1275
  return Qnil;
@@ -1199,6 +1311,13 @@ Auto_Member_Function_Wrapper(
1199
1311
  }
1200
1312
  }
1201
1313
 
1314
+ template<typename Func_T, typename Ret_T, typename Self_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>
1315
+ Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T>::
1316
+ ~Auto_Member_Function_Wrapper()
1317
+ {
1318
+ if(arguments_) { delete arguments_; }
1319
+ }
1320
+
1202
1321
  template<typename Func_T, typename Ret_T, typename Self_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>
1203
1322
  VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T>::
1204
1323
  call(int argc, VALUE* argv, VALUE self)
@@ -1216,24 +1335,25 @@ call(int argc, VALUE* argv, VALUE self)
1216
1335
 
1217
1336
  Self_T * obj = from_ruby<Self_T *>(self);
1218
1337
 
1219
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
1338
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
1220
1339
  Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
1221
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
1340
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
1222
1341
  Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
1223
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
1342
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
1224
1343
  Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
1225
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
1344
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
1226
1345
  Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
1227
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
1346
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
1228
1347
  Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
1229
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
1348
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
1230
1349
  Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
1231
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
1350
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
1232
1351
  Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
1233
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
1352
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
1234
1353
  Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
1235
- typedef typename sanitize< Arg8_T >::Type Arg8_Type;
1354
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
1236
1355
  Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(8, varg8);
1356
+
1237
1357
  Func func = wrapper->func_;
1238
1358
  return to_ruby((*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8));
1239
1359
  }
@@ -1273,6 +1393,13 @@ Auto_Member_Function_Wrapper(
1273
1393
  }
1274
1394
  }
1275
1395
 
1396
+ template<typename Func_T, typename Self_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>
1397
+ Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T>::
1398
+ ~Auto_Member_Function_Wrapper()
1399
+ {
1400
+ if(arguments_) { delete arguments_; }
1401
+ }
1402
+
1276
1403
  template<typename Func_T, typename Self_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>
1277
1404
  VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T>::
1278
1405
  call(int argc, VALUE* argv, VALUE self)
@@ -1290,24 +1417,25 @@ call(int argc, VALUE* argv, VALUE self)
1290
1417
 
1291
1418
  Self_T * obj = from_ruby<Self_T *>(self);
1292
1419
 
1293
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
1420
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
1294
1421
  Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
1295
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
1422
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
1296
1423
  Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
1297
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
1424
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
1298
1425
  Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
1299
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
1426
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
1300
1427
  Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
1301
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
1428
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
1302
1429
  Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
1303
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
1430
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
1304
1431
  Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
1305
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
1432
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
1306
1433
  Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
1307
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
1434
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
1308
1435
  Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
1309
- typedef typename sanitize< Arg8_T >::Type Arg8_Type;
1436
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
1310
1437
  Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(8, varg8);
1438
+
1311
1439
  Func func = wrapper->func_;
1312
1440
  (*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
1313
1441
  return Qnil;
@@ -1349,6 +1477,13 @@ Auto_Member_Function_Wrapper(
1349
1477
  }
1350
1478
  }
1351
1479
 
1480
+ template<typename Func_T, typename Ret_T, typename Self_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>
1481
+ Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T>::
1482
+ ~Auto_Member_Function_Wrapper()
1483
+ {
1484
+ if(arguments_) { delete arguments_; }
1485
+ }
1486
+
1352
1487
  template<typename Func_T, typename Ret_T, typename Self_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>
1353
1488
  VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T>::
1354
1489
  call(int argc, VALUE* argv, VALUE self)
@@ -1366,22 +1501,23 @@ call(int argc, VALUE* argv, VALUE self)
1366
1501
 
1367
1502
  Self_T * obj = from_ruby<Self_T *>(self);
1368
1503
 
1369
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
1504
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
1370
1505
  Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
1371
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
1506
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
1372
1507
  Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
1373
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
1508
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
1374
1509
  Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
1375
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
1510
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
1376
1511
  Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
1377
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
1512
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
1378
1513
  Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
1379
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
1514
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
1380
1515
  Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
1381
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
1516
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
1382
1517
  Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
1383
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
1518
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
1384
1519
  Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
1520
+
1385
1521
  Func func = wrapper->func_;
1386
1522
  return to_ruby((*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7));
1387
1523
  }
@@ -1421,6 +1557,13 @@ Auto_Member_Function_Wrapper(
1421
1557
  }
1422
1558
  }
1423
1559
 
1560
+ template<typename Func_T, typename Self_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>
1561
+ Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T>::
1562
+ ~Auto_Member_Function_Wrapper()
1563
+ {
1564
+ if(arguments_) { delete arguments_; }
1565
+ }
1566
+
1424
1567
  template<typename Func_T, typename Self_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>
1425
1568
  VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T>::
1426
1569
  call(int argc, VALUE* argv, VALUE self)
@@ -1438,22 +1581,23 @@ call(int argc, VALUE* argv, VALUE self)
1438
1581
 
1439
1582
  Self_T * obj = from_ruby<Self_T *>(self);
1440
1583
 
1441
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
1584
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
1442
1585
  Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
1443
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
1586
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
1444
1587
  Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
1445
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
1588
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
1446
1589
  Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
1447
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
1590
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
1448
1591
  Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
1449
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
1592
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
1450
1593
  Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
1451
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
1594
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
1452
1595
  Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
1453
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
1596
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
1454
1597
  Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
1455
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
1598
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
1456
1599
  Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
1600
+
1457
1601
  Func func = wrapper->func_;
1458
1602
  (*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
1459
1603
  return Qnil;
@@ -1495,6 +1639,13 @@ Auto_Member_Function_Wrapper(
1495
1639
  }
1496
1640
  }
1497
1641
 
1642
+ template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T>
1643
+ Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T>::
1644
+ ~Auto_Member_Function_Wrapper()
1645
+ {
1646
+ if(arguments_) { delete arguments_; }
1647
+ }
1648
+
1498
1649
  template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T>
1499
1650
  VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T>::
1500
1651
  call(int argc, VALUE* argv, VALUE self)
@@ -1512,20 +1663,21 @@ call(int argc, VALUE* argv, VALUE self)
1512
1663
 
1513
1664
  Self_T * obj = from_ruby<Self_T *>(self);
1514
1665
 
1515
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
1666
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
1516
1667
  Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
1517
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
1668
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
1518
1669
  Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
1519
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
1670
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
1520
1671
  Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
1521
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
1672
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
1522
1673
  Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
1523
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
1674
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
1524
1675
  Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
1525
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
1676
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
1526
1677
  Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
1527
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
1678
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
1528
1679
  Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
1680
+
1529
1681
  Func func = wrapper->func_;
1530
1682
  return to_ruby((*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6));
1531
1683
  }
@@ -1565,6 +1717,13 @@ Auto_Member_Function_Wrapper(
1565
1717
  }
1566
1718
  }
1567
1719
 
1720
+ template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T>
1721
+ Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T>::
1722
+ ~Auto_Member_Function_Wrapper()
1723
+ {
1724
+ if(arguments_) { delete arguments_; }
1725
+ }
1726
+
1568
1727
  template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T>
1569
1728
  VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T>::
1570
1729
  call(int argc, VALUE* argv, VALUE self)
@@ -1582,20 +1741,21 @@ call(int argc, VALUE* argv, VALUE self)
1582
1741
 
1583
1742
  Self_T * obj = from_ruby<Self_T *>(self);
1584
1743
 
1585
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
1744
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
1586
1745
  Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
1587
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
1746
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
1588
1747
  Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
1589
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
1748
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
1590
1749
  Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
1591
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
1750
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
1592
1751
  Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
1593
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
1752
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
1594
1753
  Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
1595
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
1754
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
1596
1755
  Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
1597
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
1756
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
1598
1757
  Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
1758
+
1599
1759
  Func func = wrapper->func_;
1600
1760
  (*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6);
1601
1761
  return Qnil;
@@ -1637,6 +1797,13 @@ Auto_Member_Function_Wrapper(
1637
1797
  }
1638
1798
  }
1639
1799
 
1800
+ template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T>
1801
+ Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T>::
1802
+ ~Auto_Member_Function_Wrapper()
1803
+ {
1804
+ if(arguments_) { delete arguments_; }
1805
+ }
1806
+
1640
1807
  template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T>
1641
1808
  VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T>::
1642
1809
  call(int argc, VALUE* argv, VALUE self)
@@ -1654,18 +1821,19 @@ call(int argc, VALUE* argv, VALUE self)
1654
1821
 
1655
1822
  Self_T * obj = from_ruby<Self_T *>(self);
1656
1823
 
1657
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
1824
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
1658
1825
  Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
1659
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
1826
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
1660
1827
  Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
1661
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
1828
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
1662
1829
  Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
1663
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
1830
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
1664
1831
  Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
1665
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
1832
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
1666
1833
  Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
1667
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
1834
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
1668
1835
  Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
1836
+
1669
1837
  Func func = wrapper->func_;
1670
1838
  return to_ruby((*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5));
1671
1839
  }
@@ -1705,6 +1873,13 @@ Auto_Member_Function_Wrapper(
1705
1873
  }
1706
1874
  }
1707
1875
 
1876
+ template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T>
1877
+ Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T>::
1878
+ ~Auto_Member_Function_Wrapper()
1879
+ {
1880
+ if(arguments_) { delete arguments_; }
1881
+ }
1882
+
1708
1883
  template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T>
1709
1884
  VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T>::
1710
1885
  call(int argc, VALUE* argv, VALUE self)
@@ -1722,18 +1897,19 @@ call(int argc, VALUE* argv, VALUE self)
1722
1897
 
1723
1898
  Self_T * obj = from_ruby<Self_T *>(self);
1724
1899
 
1725
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
1900
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
1726
1901
  Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
1727
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
1902
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
1728
1903
  Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
1729
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
1904
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
1730
1905
  Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
1731
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
1906
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
1732
1907
  Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
1733
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
1908
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
1734
1909
  Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
1735
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
1910
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
1736
1911
  Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
1912
+
1737
1913
  Func func = wrapper->func_;
1738
1914
  (*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5);
1739
1915
  return Qnil;
@@ -1775,6 +1951,13 @@ Auto_Member_Function_Wrapper(
1775
1951
  }
1776
1952
  }
1777
1953
 
1954
+ template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
1955
+ Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T>::
1956
+ ~Auto_Member_Function_Wrapper()
1957
+ {
1958
+ if(arguments_) { delete arguments_; }
1959
+ }
1960
+
1778
1961
  template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
1779
1962
  VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T>::
1780
1963
  call(int argc, VALUE* argv, VALUE self)
@@ -1792,16 +1975,17 @@ call(int argc, VALUE* argv, VALUE self)
1792
1975
 
1793
1976
  Self_T * obj = from_ruby<Self_T *>(self);
1794
1977
 
1795
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
1978
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
1796
1979
  Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
1797
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
1980
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
1798
1981
  Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
1799
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
1982
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
1800
1983
  Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
1801
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
1984
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
1802
1985
  Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
1803
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
1986
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
1804
1987
  Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
1988
+
1805
1989
  Func func = wrapper->func_;
1806
1990
  return to_ruby((*obj.*func)(arg0, arg1, arg2, arg3, arg4));
1807
1991
  }
@@ -1841,6 +2025,13 @@ Auto_Member_Function_Wrapper(
1841
2025
  }
1842
2026
  }
1843
2027
 
2028
+ template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
2029
+ Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T>::
2030
+ ~Auto_Member_Function_Wrapper()
2031
+ {
2032
+ if(arguments_) { delete arguments_; }
2033
+ }
2034
+
1844
2035
  template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
1845
2036
  VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T>::
1846
2037
  call(int argc, VALUE* argv, VALUE self)
@@ -1858,16 +2049,17 @@ call(int argc, VALUE* argv, VALUE self)
1858
2049
 
1859
2050
  Self_T * obj = from_ruby<Self_T *>(self);
1860
2051
 
1861
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
2052
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
1862
2053
  Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
1863
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
2054
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
1864
2055
  Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
1865
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
2056
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
1866
2057
  Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
1867
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
2058
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
1868
2059
  Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
1869
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
2060
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
1870
2061
  Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
2062
+
1871
2063
  Func func = wrapper->func_;
1872
2064
  (*obj.*func)(arg0, arg1, arg2, arg3, arg4);
1873
2065
  return Qnil;
@@ -1909,6 +2101,13 @@ Auto_Member_Function_Wrapper(
1909
2101
  }
1910
2102
  }
1911
2103
 
2104
+ template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
2105
+ Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T>::
2106
+ ~Auto_Member_Function_Wrapper()
2107
+ {
2108
+ if(arguments_) { delete arguments_; }
2109
+ }
2110
+
1912
2111
  template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
1913
2112
  VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T>::
1914
2113
  call(int argc, VALUE* argv, VALUE self)
@@ -1926,14 +2125,15 @@ call(int argc, VALUE* argv, VALUE self)
1926
2125
 
1927
2126
  Self_T * obj = from_ruby<Self_T *>(self);
1928
2127
 
1929
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
2128
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
1930
2129
  Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
1931
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
2130
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
1932
2131
  Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
1933
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
2132
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
1934
2133
  Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
1935
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
2134
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
1936
2135
  Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
2136
+
1937
2137
  Func func = wrapper->func_;
1938
2138
  return to_ruby((*obj.*func)(arg0, arg1, arg2, arg3));
1939
2139
  }
@@ -1973,6 +2173,13 @@ Auto_Member_Function_Wrapper(
1973
2173
  }
1974
2174
  }
1975
2175
 
2176
+ template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
2177
+ Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T>::
2178
+ ~Auto_Member_Function_Wrapper()
2179
+ {
2180
+ if(arguments_) { delete arguments_; }
2181
+ }
2182
+
1976
2183
  template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
1977
2184
  VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T>::
1978
2185
  call(int argc, VALUE* argv, VALUE self)
@@ -1990,14 +2197,15 @@ call(int argc, VALUE* argv, VALUE self)
1990
2197
 
1991
2198
  Self_T * obj = from_ruby<Self_T *>(self);
1992
2199
 
1993
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
2200
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
1994
2201
  Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
1995
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
2202
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
1996
2203
  Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
1997
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
2204
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
1998
2205
  Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
1999
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
2206
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
2000
2207
  Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
2208
+
2001
2209
  Func func = wrapper->func_;
2002
2210
  (*obj.*func)(arg0, arg1, arg2, arg3);
2003
2211
  return Qnil;
@@ -2039,6 +2247,13 @@ Auto_Member_Function_Wrapper(
2039
2247
  }
2040
2248
  }
2041
2249
 
2250
+ template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T>
2251
+ Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T>::
2252
+ ~Auto_Member_Function_Wrapper()
2253
+ {
2254
+ if(arguments_) { delete arguments_; }
2255
+ }
2256
+
2042
2257
  template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T>
2043
2258
  VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T>::
2044
2259
  call(int argc, VALUE* argv, VALUE self)
@@ -2056,12 +2271,13 @@ call(int argc, VALUE* argv, VALUE self)
2056
2271
 
2057
2272
  Self_T * obj = from_ruby<Self_T *>(self);
2058
2273
 
2059
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
2274
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
2060
2275
  Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
2061
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
2276
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
2062
2277
  Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
2063
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
2278
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
2064
2279
  Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
2280
+
2065
2281
  Func func = wrapper->func_;
2066
2282
  return to_ruby((*obj.*func)(arg0, arg1, arg2));
2067
2283
  }
@@ -2101,6 +2317,13 @@ Auto_Member_Function_Wrapper(
2101
2317
  }
2102
2318
  }
2103
2319
 
2320
+ template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T>
2321
+ Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T>::
2322
+ ~Auto_Member_Function_Wrapper()
2323
+ {
2324
+ if(arguments_) { delete arguments_; }
2325
+ }
2326
+
2104
2327
  template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T>
2105
2328
  VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T, Arg2_T>::
2106
2329
  call(int argc, VALUE* argv, VALUE self)
@@ -2118,12 +2341,13 @@ call(int argc, VALUE* argv, VALUE self)
2118
2341
 
2119
2342
  Self_T * obj = from_ruby<Self_T *>(self);
2120
2343
 
2121
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
2344
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
2122
2345
  Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
2123
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
2346
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
2124
2347
  Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
2125
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
2348
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
2126
2349
  Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
2350
+
2127
2351
  Func func = wrapper->func_;
2128
2352
  (*obj.*func)(arg0, arg1, arg2);
2129
2353
  return Qnil;
@@ -2165,6 +2389,13 @@ Auto_Member_Function_Wrapper(
2165
2389
  }
2166
2390
  }
2167
2391
 
2392
+ template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T>
2393
+ Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T>::
2394
+ ~Auto_Member_Function_Wrapper()
2395
+ {
2396
+ if(arguments_) { delete arguments_; }
2397
+ }
2398
+
2168
2399
  template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T>
2169
2400
  VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T, Arg1_T>::
2170
2401
  call(int argc, VALUE* argv, VALUE self)
@@ -2182,10 +2413,11 @@ call(int argc, VALUE* argv, VALUE self)
2182
2413
 
2183
2414
  Self_T * obj = from_ruby<Self_T *>(self);
2184
2415
 
2185
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
2416
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
2186
2417
  Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
2187
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
2418
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
2188
2419
  Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
2420
+
2189
2421
  Func func = wrapper->func_;
2190
2422
  return to_ruby((*obj.*func)(arg0, arg1));
2191
2423
  }
@@ -2225,6 +2457,13 @@ Auto_Member_Function_Wrapper(
2225
2457
  }
2226
2458
  }
2227
2459
 
2460
+ template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T>
2461
+ Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T>::
2462
+ ~Auto_Member_Function_Wrapper()
2463
+ {
2464
+ if(arguments_) { delete arguments_; }
2465
+ }
2466
+
2228
2467
  template<typename Func_T, typename Self_T, typename Arg0_T, typename Arg1_T>
2229
2468
  VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T, Arg1_T>::
2230
2469
  call(int argc, VALUE* argv, VALUE self)
@@ -2242,10 +2481,11 @@ call(int argc, VALUE* argv, VALUE self)
2242
2481
 
2243
2482
  Self_T * obj = from_ruby<Self_T *>(self);
2244
2483
 
2245
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
2484
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
2246
2485
  Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
2247
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
2486
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
2248
2487
  Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
2488
+
2249
2489
  Func func = wrapper->func_;
2250
2490
  (*obj.*func)(arg0, arg1);
2251
2491
  return Qnil;
@@ -2287,6 +2527,13 @@ Auto_Member_Function_Wrapper(
2287
2527
  }
2288
2528
  }
2289
2529
 
2530
+ template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T>
2531
+ Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T>::
2532
+ ~Auto_Member_Function_Wrapper()
2533
+ {
2534
+ if(arguments_) { delete arguments_; }
2535
+ }
2536
+
2290
2537
  template<typename Func_T, typename Ret_T, typename Self_T, typename Arg0_T>
2291
2538
  VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T, Arg0_T>::
2292
2539
  call(int argc, VALUE* argv, VALUE self)
@@ -2304,8 +2551,9 @@ call(int argc, VALUE* argv, VALUE self)
2304
2551
 
2305
2552
  Self_T * obj = from_ruby<Self_T *>(self);
2306
2553
 
2307
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
2554
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
2308
2555
  Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
2556
+
2309
2557
  Func func = wrapper->func_;
2310
2558
  return to_ruby((*obj.*func)(arg0));
2311
2559
  }
@@ -2345,6 +2593,13 @@ Auto_Member_Function_Wrapper(
2345
2593
  }
2346
2594
  }
2347
2595
 
2596
+ template<typename Func_T, typename Self_T, typename Arg0_T>
2597
+ Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T>::
2598
+ ~Auto_Member_Function_Wrapper()
2599
+ {
2600
+ if(arguments_) { delete arguments_; }
2601
+ }
2602
+
2348
2603
  template<typename Func_T, typename Self_T, typename Arg0_T>
2349
2604
  VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T, Arg0_T>::
2350
2605
  call(int argc, VALUE* argv, VALUE self)
@@ -2362,8 +2617,9 @@ call(int argc, VALUE* argv, VALUE self)
2362
2617
 
2363
2618
  Self_T * obj = from_ruby<Self_T *>(self);
2364
2619
 
2365
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
2620
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
2366
2621
  Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
2622
+
2367
2623
  Func func = wrapper->func_;
2368
2624
  (*obj.*func)(arg0);
2369
2625
  return Qnil;
@@ -2386,6 +2642,7 @@ call(int argc, VALUE* argv, VALUE self)
2386
2642
  }
2387
2643
 
2388
2644
  // ---------------------------------------------------------------------
2645
+
2389
2646
  template<typename Func_T, typename Ret_T, typename Self_T>
2390
2647
  Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T>::
2391
2648
  Auto_Member_Function_Wrapper(
@@ -2405,6 +2662,13 @@ Auto_Member_Function_Wrapper(
2405
2662
  }
2406
2663
  }
2407
2664
 
2665
+ template<typename Func_T, typename Ret_T, typename Self_T>
2666
+ Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T>::
2667
+ ~Auto_Member_Function_Wrapper()
2668
+ {
2669
+ if(arguments_) { delete arguments_; }
2670
+ }
2671
+
2408
2672
  template<typename Func_T, typename Ret_T, typename Self_T>
2409
2673
  VALUE Auto_Member_Function_Wrapper<Func_T, Ret_T, Self_T>::
2410
2674
  call(int argc, VALUE* argv, VALUE self)
@@ -2458,6 +2722,13 @@ Auto_Member_Function_Wrapper(
2458
2722
  }
2459
2723
  }
2460
2724
 
2725
+ template<typename Func_T, typename Self_T>
2726
+ Auto_Member_Function_Wrapper<Func_T, void, Self_T>::
2727
+ ~Auto_Member_Function_Wrapper()
2728
+ {
2729
+ if(arguments_) { delete arguments_; }
2730
+ }
2731
+
2461
2732
  template<typename Func_T, typename Self_T>
2462
2733
  VALUE Auto_Member_Function_Wrapper<Func_T, void, Self_T>::
2463
2734
  call(int argc, VALUE* argv, VALUE self)