rice 1.4.3 → 1.5.0

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