rice/detail/Auto_Function_Wrapper.ipp in rice-1.4.3 vs rice/detail/Auto_Function_Wrapper.ipp in rice-1.5.0
- old
+ new
@@ -34,10 +34,17 @@
arguments_ = arguments;
}
}
template<typename Func_T, typename Ret_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>
+Auto_Function_Wrapper<Func_T, Ret_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>::
+~Auto_Function_Wrapper()
+{
+ if(arguments_) { delete arguments_; }
+}
+
+template<typename Func_T, typename Ret_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>
VALUE Auto_Function_Wrapper<Func_T, Ret_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>::
call(int argc, VALUE *argv, VALUE self)
{
Auto_Function_Wrapper<Func_T, Ret_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> * wrapper = 0;
try
@@ -59,77 +66,79 @@
rb_scan_args(argc, argv, args->formatString(Num_Args - 1).c_str()
, &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10, &varg11, &varg12, &varg13, &varg14, &varg15);
Arg0_T arg0 = from_ruby<Arg0_T>(self);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(0, varg0);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(1, varg1);
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(2, varg2);
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(3, varg3);
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(4, varg4);
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(5, varg5);
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(6, varg6);
- typedef typename sanitize< Arg8_T >::Type Arg8_Type;
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(7, varg7);
- typedef typename sanitize< Arg9_T >::Type Arg9_Type;
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(8, varg8);
- typedef typename sanitize< Arg10_T >::Type Arg10_Type;
+ typedef typename sanitize< Arg10_T >::Type Arg10_Type;
Arg10_Type arg10 = args->getArgumentOrDefault<Arg10_Type>(9, varg9);
- typedef typename sanitize< Arg11_T >::Type Arg11_Type;
+ typedef typename sanitize< Arg11_T >::Type Arg11_Type;
Arg11_Type arg11 = args->getArgumentOrDefault<Arg11_Type>(10, varg10);
- typedef typename sanitize< Arg12_T >::Type Arg12_Type;
+ typedef typename sanitize< Arg12_T >::Type Arg12_Type;
Arg12_Type arg12 = args->getArgumentOrDefault<Arg12_Type>(11, varg11);
- typedef typename sanitize< Arg13_T >::Type Arg13_Type;
+ typedef typename sanitize< Arg13_T >::Type Arg13_Type;
Arg13_Type arg13 = args->getArgumentOrDefault<Arg13_Type>(12, varg12);
- typedef typename sanitize< Arg14_T >::Type Arg14_Type;
+ typedef typename sanitize< Arg14_T >::Type Arg14_Type;
Arg14_Type arg14 = args->getArgumentOrDefault<Arg14_Type>(13, varg13);
- typedef typename sanitize< Arg15_T >::Type Arg15_Type;
+ typedef typename sanitize< Arg15_T >::Type Arg15_Type;
Arg15_Type arg15 = args->getArgumentOrDefault<Arg15_Type>(14, varg14);
+
return to_ruby(wrapper->func_(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15));
} else {
rb_scan_args(argc, argv, args->formatString(Num_Args).c_str()
, &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10, &varg11, &varg12, &varg13, &varg14, &varg15);
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
- typedef typename sanitize< Arg8_T >::Type Arg8_Type;
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(8, varg8);
- typedef typename sanitize< Arg9_T >::Type Arg9_Type;
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(9, varg9);
- typedef typename sanitize< Arg10_T >::Type Arg10_Type;
+ typedef typename sanitize< Arg10_T >::Type Arg10_Type;
Arg10_Type arg10 = args->getArgumentOrDefault<Arg10_Type>(10, varg10);
- typedef typename sanitize< Arg11_T >::Type Arg11_Type;
+ typedef typename sanitize< Arg11_T >::Type Arg11_Type;
Arg11_Type arg11 = args->getArgumentOrDefault<Arg11_Type>(11, varg11);
- typedef typename sanitize< Arg12_T >::Type Arg12_Type;
+ typedef typename sanitize< Arg12_T >::Type Arg12_Type;
Arg12_Type arg12 = args->getArgumentOrDefault<Arg12_Type>(12, varg12);
- typedef typename sanitize< Arg13_T >::Type Arg13_Type;
+ typedef typename sanitize< Arg13_T >::Type Arg13_Type;
Arg13_Type arg13 = args->getArgumentOrDefault<Arg13_Type>(13, varg13);
- typedef typename sanitize< Arg14_T >::Type Arg14_Type;
+ typedef typename sanitize< Arg14_T >::Type Arg14_Type;
Arg14_Type arg14 = args->getArgumentOrDefault<Arg14_Type>(14, varg14);
- typedef typename sanitize< Arg15_T >::Type Arg15_Type;
+ typedef typename sanitize< Arg15_T >::Type Arg15_Type;
Arg15_Type arg15 = args->getArgumentOrDefault<Arg15_Type>(15, varg15);
+
return to_ruby(wrapper->func_(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15));
}
}
catch(...)
{
@@ -165,10 +174,17 @@
arguments_ = arguments;
}
}
template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T, typename Arg14_T, typename Arg15_T>
+Auto_Function_Wrapper<Func_T, void, 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>::
+~Auto_Function_Wrapper()
+{
+ if(arguments_) { delete arguments_; }
+}
+
+template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T, typename Arg14_T, typename Arg15_T>
VALUE Auto_Function_Wrapper<Func_T, void, 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>::
call(int argc, VALUE* argv, VALUE self)
{
Auto_Function_Wrapper<Func_T, void, 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> * wrapper = 0;
try
@@ -190,78 +206,80 @@
rb_scan_args(argc, argv, args->formatString(Num_Args - 1) .c_str()
, &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10, &varg11, &varg12, &varg13, &varg14, &varg15);
Arg0_T arg0 = from_ruby<Arg0_T>(self);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(0, varg0);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(1, varg1);
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(2, varg2);
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(3, varg3);
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(4, varg4);
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(5, varg5);
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(6, varg6);
- typedef typename sanitize< Arg8_T >::Type Arg8_Type;
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(7, varg7);
- typedef typename sanitize< Arg9_T >::Type Arg9_Type;
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(8, varg8);
- typedef typename sanitize< Arg10_T >::Type Arg10_Type;
+ typedef typename sanitize< Arg10_T >::Type Arg10_Type;
Arg10_Type arg10 = args->getArgumentOrDefault<Arg10_Type>(9, varg9);
- typedef typename sanitize< Arg11_T >::Type Arg11_Type;
+ typedef typename sanitize< Arg11_T >::Type Arg11_Type;
Arg11_Type arg11 = args->getArgumentOrDefault<Arg11_Type>(10, varg10);
- typedef typename sanitize< Arg12_T >::Type Arg12_Type;
+ typedef typename sanitize< Arg12_T >::Type Arg12_Type;
Arg12_Type arg12 = args->getArgumentOrDefault<Arg12_Type>(11, varg11);
- typedef typename sanitize< Arg13_T >::Type Arg13_Type;
+ typedef typename sanitize< Arg13_T >::Type Arg13_Type;
Arg13_Type arg13 = args->getArgumentOrDefault<Arg13_Type>(12, varg12);
- typedef typename sanitize< Arg14_T >::Type Arg14_Type;
+ typedef typename sanitize< Arg14_T >::Type Arg14_Type;
Arg14_Type arg14 = args->getArgumentOrDefault<Arg14_Type>(13, varg13);
- typedef typename sanitize< Arg15_T >::Type Arg15_Type;
+ typedef typename sanitize< Arg15_T >::Type Arg15_Type;
Arg15_Type arg15 = args->getArgumentOrDefault<Arg15_Type>(14, varg14);
+
wrapper->func_(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15);
return Qnil;
} else {
rb_scan_args(argc, argv, args->formatString(Num_Args).c_str()
, &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10, &varg11, &varg12, &varg13, &varg14, &varg15);
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
- typedef typename sanitize< Arg8_T >::Type Arg8_Type;
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(8, varg8);
- typedef typename sanitize< Arg9_T >::Type Arg9_Type;
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(9, varg9);
- typedef typename sanitize< Arg10_T >::Type Arg10_Type;
+ typedef typename sanitize< Arg10_T >::Type Arg10_Type;
Arg10_Type arg10 = args->getArgumentOrDefault<Arg10_Type>(10, varg10);
- typedef typename sanitize< Arg11_T >::Type Arg11_Type;
+ typedef typename sanitize< Arg11_T >::Type Arg11_Type;
Arg11_Type arg11 = args->getArgumentOrDefault<Arg11_Type>(11, varg11);
- typedef typename sanitize< Arg12_T >::Type Arg12_Type;
+ typedef typename sanitize< Arg12_T >::Type Arg12_Type;
Arg12_Type arg12 = args->getArgumentOrDefault<Arg12_Type>(12, varg12);
- typedef typename sanitize< Arg13_T >::Type Arg13_Type;
+ typedef typename sanitize< Arg13_T >::Type Arg13_Type;
Arg13_Type arg13 = args->getArgumentOrDefault<Arg13_Type>(13, varg13);
- typedef typename sanitize< Arg14_T >::Type Arg14_Type;
+ typedef typename sanitize< Arg14_T >::Type Arg14_Type;
Arg14_Type arg14 = args->getArgumentOrDefault<Arg14_Type>(14, varg14);
- typedef typename sanitize< Arg15_T >::Type Arg15_Type;
+ typedef typename sanitize< Arg15_T >::Type Arg15_Type;
Arg15_Type arg15 = args->getArgumentOrDefault<Arg15_Type>(15, varg15);
+
wrapper->func_(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15);
return Qnil;
}
}
catch(...)
@@ -299,10 +317,17 @@
arguments_ = arguments;
}
}
template<typename Func_T, typename Ret_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>
+Auto_Function_Wrapper<Func_T, Ret_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>::
+~Auto_Function_Wrapper()
+{
+ if(arguments_) { delete arguments_; }
+}
+
+template<typename Func_T, typename Ret_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>
VALUE Auto_Function_Wrapper<Func_T, Ret_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>::
call(int argc, VALUE *argv, VALUE self)
{
Auto_Function_Wrapper<Func_T, Ret_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> * wrapper = 0;
try
@@ -324,73 +349,75 @@
rb_scan_args(argc, argv, args->formatString(Num_Args - 1).c_str()
, &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10, &varg11, &varg12, &varg13, &varg14);
Arg0_T arg0 = from_ruby<Arg0_T>(self);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(0, varg0);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(1, varg1);
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(2, varg2);
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(3, varg3);
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(4, varg4);
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(5, varg5);
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(6, varg6);
- typedef typename sanitize< Arg8_T >::Type Arg8_Type;
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(7, varg7);
- typedef typename sanitize< Arg9_T >::Type Arg9_Type;
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(8, varg8);
- typedef typename sanitize< Arg10_T >::Type Arg10_Type;
+ typedef typename sanitize< Arg10_T >::Type Arg10_Type;
Arg10_Type arg10 = args->getArgumentOrDefault<Arg10_Type>(9, varg9);
- typedef typename sanitize< Arg11_T >::Type Arg11_Type;
+ typedef typename sanitize< Arg11_T >::Type Arg11_Type;
Arg11_Type arg11 = args->getArgumentOrDefault<Arg11_Type>(10, varg10);
- typedef typename sanitize< Arg12_T >::Type Arg12_Type;
+ typedef typename sanitize< Arg12_T >::Type Arg12_Type;
Arg12_Type arg12 = args->getArgumentOrDefault<Arg12_Type>(11, varg11);
- typedef typename sanitize< Arg13_T >::Type Arg13_Type;
+ typedef typename sanitize< Arg13_T >::Type Arg13_Type;
Arg13_Type arg13 = args->getArgumentOrDefault<Arg13_Type>(12, varg12);
- typedef typename sanitize< Arg14_T >::Type Arg14_Type;
+ typedef typename sanitize< Arg14_T >::Type Arg14_Type;
Arg14_Type arg14 = args->getArgumentOrDefault<Arg14_Type>(13, varg13);
+
return to_ruby(wrapper->func_(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14));
} else {
rb_scan_args(argc, argv, args->formatString(Num_Args).c_str()
, &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10, &varg11, &varg12, &varg13, &varg14);
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
- typedef typename sanitize< Arg8_T >::Type Arg8_Type;
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(8, varg8);
- typedef typename sanitize< Arg9_T >::Type Arg9_Type;
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(9, varg9);
- typedef typename sanitize< Arg10_T >::Type Arg10_Type;
+ typedef typename sanitize< Arg10_T >::Type Arg10_Type;
Arg10_Type arg10 = args->getArgumentOrDefault<Arg10_Type>(10, varg10);
- typedef typename sanitize< Arg11_T >::Type Arg11_Type;
+ typedef typename sanitize< Arg11_T >::Type Arg11_Type;
Arg11_Type arg11 = args->getArgumentOrDefault<Arg11_Type>(11, varg11);
- typedef typename sanitize< Arg12_T >::Type Arg12_Type;
+ typedef typename sanitize< Arg12_T >::Type Arg12_Type;
Arg12_Type arg12 = args->getArgumentOrDefault<Arg12_Type>(12, varg12);
- typedef typename sanitize< Arg13_T >::Type Arg13_Type;
+ typedef typename sanitize< Arg13_T >::Type Arg13_Type;
Arg13_Type arg13 = args->getArgumentOrDefault<Arg13_Type>(13, varg13);
- typedef typename sanitize< Arg14_T >::Type Arg14_Type;
+ typedef typename sanitize< Arg14_T >::Type Arg14_Type;
Arg14_Type arg14 = args->getArgumentOrDefault<Arg14_Type>(14, varg14);
+
return to_ruby(wrapper->func_(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14));
}
}
catch(...)
{
@@ -426,10 +453,17 @@
arguments_ = arguments;
}
}
template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T, typename Arg14_T>
+Auto_Function_Wrapper<Func_T, void, 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>::
+~Auto_Function_Wrapper()
+{
+ if(arguments_) { delete arguments_; }
+}
+
+template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T, typename Arg14_T>
VALUE Auto_Function_Wrapper<Func_T, void, 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>::
call(int argc, VALUE* argv, VALUE self)
{
Auto_Function_Wrapper<Func_T, void, 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> * wrapper = 0;
try
@@ -451,74 +485,76 @@
rb_scan_args(argc, argv, args->formatString(Num_Args - 1) .c_str()
, &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10, &varg11, &varg12, &varg13, &varg14);
Arg0_T arg0 = from_ruby<Arg0_T>(self);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(0, varg0);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(1, varg1);
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(2, varg2);
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(3, varg3);
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(4, varg4);
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(5, varg5);
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(6, varg6);
- typedef typename sanitize< Arg8_T >::Type Arg8_Type;
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(7, varg7);
- typedef typename sanitize< Arg9_T >::Type Arg9_Type;
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(8, varg8);
- typedef typename sanitize< Arg10_T >::Type Arg10_Type;
+ typedef typename sanitize< Arg10_T >::Type Arg10_Type;
Arg10_Type arg10 = args->getArgumentOrDefault<Arg10_Type>(9, varg9);
- typedef typename sanitize< Arg11_T >::Type Arg11_Type;
+ typedef typename sanitize< Arg11_T >::Type Arg11_Type;
Arg11_Type arg11 = args->getArgumentOrDefault<Arg11_Type>(10, varg10);
- typedef typename sanitize< Arg12_T >::Type Arg12_Type;
+ typedef typename sanitize< Arg12_T >::Type Arg12_Type;
Arg12_Type arg12 = args->getArgumentOrDefault<Arg12_Type>(11, varg11);
- typedef typename sanitize< Arg13_T >::Type Arg13_Type;
+ typedef typename sanitize< Arg13_T >::Type Arg13_Type;
Arg13_Type arg13 = args->getArgumentOrDefault<Arg13_Type>(12, varg12);
- typedef typename sanitize< Arg14_T >::Type Arg14_Type;
+ typedef typename sanitize< Arg14_T >::Type Arg14_Type;
Arg14_Type arg14 = args->getArgumentOrDefault<Arg14_Type>(13, varg13);
+
wrapper->func_(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14);
return Qnil;
} else {
rb_scan_args(argc, argv, args->formatString(Num_Args).c_str()
, &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10, &varg11, &varg12, &varg13, &varg14);
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
- typedef typename sanitize< Arg8_T >::Type Arg8_Type;
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(8, varg8);
- typedef typename sanitize< Arg9_T >::Type Arg9_Type;
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(9, varg9);
- typedef typename sanitize< Arg10_T >::Type Arg10_Type;
+ typedef typename sanitize< Arg10_T >::Type Arg10_Type;
Arg10_Type arg10 = args->getArgumentOrDefault<Arg10_Type>(10, varg10);
- typedef typename sanitize< Arg11_T >::Type Arg11_Type;
+ typedef typename sanitize< Arg11_T >::Type Arg11_Type;
Arg11_Type arg11 = args->getArgumentOrDefault<Arg11_Type>(11, varg11);
- typedef typename sanitize< Arg12_T >::Type Arg12_Type;
+ typedef typename sanitize< Arg12_T >::Type Arg12_Type;
Arg12_Type arg12 = args->getArgumentOrDefault<Arg12_Type>(12, varg12);
- typedef typename sanitize< Arg13_T >::Type Arg13_Type;
+ typedef typename sanitize< Arg13_T >::Type Arg13_Type;
Arg13_Type arg13 = args->getArgumentOrDefault<Arg13_Type>(13, varg13);
- typedef typename sanitize< Arg14_T >::Type Arg14_Type;
+ typedef typename sanitize< Arg14_T >::Type Arg14_Type;
Arg14_Type arg14 = args->getArgumentOrDefault<Arg14_Type>(14, varg14);
+
wrapper->func_(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14);
return Qnil;
}
}
catch(...)
@@ -556,10 +592,17 @@
arguments_ = arguments;
}
}
template<typename Func_T, typename Ret_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>
+Auto_Function_Wrapper<Func_T, Ret_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>::
+~Auto_Function_Wrapper()
+{
+ if(arguments_) { delete arguments_; }
+}
+
+template<typename Func_T, typename Ret_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>
VALUE Auto_Function_Wrapper<Func_T, Ret_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>::
call(int argc, VALUE *argv, VALUE self)
{
Auto_Function_Wrapper<Func_T, Ret_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> * wrapper = 0;
try
@@ -581,69 +624,71 @@
rb_scan_args(argc, argv, args->formatString(Num_Args - 1).c_str()
, &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10, &varg11, &varg12, &varg13);
Arg0_T arg0 = from_ruby<Arg0_T>(self);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(0, varg0);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(1, varg1);
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(2, varg2);
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(3, varg3);
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(4, varg4);
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(5, varg5);
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(6, varg6);
- typedef typename sanitize< Arg8_T >::Type Arg8_Type;
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(7, varg7);
- typedef typename sanitize< Arg9_T >::Type Arg9_Type;
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(8, varg8);
- typedef typename sanitize< Arg10_T >::Type Arg10_Type;
+ typedef typename sanitize< Arg10_T >::Type Arg10_Type;
Arg10_Type arg10 = args->getArgumentOrDefault<Arg10_Type>(9, varg9);
- typedef typename sanitize< Arg11_T >::Type Arg11_Type;
+ typedef typename sanitize< Arg11_T >::Type Arg11_Type;
Arg11_Type arg11 = args->getArgumentOrDefault<Arg11_Type>(10, varg10);
- typedef typename sanitize< Arg12_T >::Type Arg12_Type;
+ typedef typename sanitize< Arg12_T >::Type Arg12_Type;
Arg12_Type arg12 = args->getArgumentOrDefault<Arg12_Type>(11, varg11);
- typedef typename sanitize< Arg13_T >::Type Arg13_Type;
+ typedef typename sanitize< Arg13_T >::Type Arg13_Type;
Arg13_Type arg13 = args->getArgumentOrDefault<Arg13_Type>(12, varg12);
+
return to_ruby(wrapper->func_(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13));
} else {
rb_scan_args(argc, argv, args->formatString(Num_Args).c_str()
, &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10, &varg11, &varg12, &varg13);
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
- typedef typename sanitize< Arg8_T >::Type Arg8_Type;
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(8, varg8);
- typedef typename sanitize< Arg9_T >::Type Arg9_Type;
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(9, varg9);
- typedef typename sanitize< Arg10_T >::Type Arg10_Type;
+ typedef typename sanitize< Arg10_T >::Type Arg10_Type;
Arg10_Type arg10 = args->getArgumentOrDefault<Arg10_Type>(10, varg10);
- typedef typename sanitize< Arg11_T >::Type Arg11_Type;
+ typedef typename sanitize< Arg11_T >::Type Arg11_Type;
Arg11_Type arg11 = args->getArgumentOrDefault<Arg11_Type>(11, varg11);
- typedef typename sanitize< Arg12_T >::Type Arg12_Type;
+ typedef typename sanitize< Arg12_T >::Type Arg12_Type;
Arg12_Type arg12 = args->getArgumentOrDefault<Arg12_Type>(12, varg12);
- typedef typename sanitize< Arg13_T >::Type Arg13_Type;
+ typedef typename sanitize< Arg13_T >::Type Arg13_Type;
Arg13_Type arg13 = args->getArgumentOrDefault<Arg13_Type>(13, varg13);
+
return to_ruby(wrapper->func_(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13));
}
}
catch(...)
{
@@ -679,10 +724,17 @@
arguments_ = arguments;
}
}
template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T>
+Auto_Function_Wrapper<Func_T, void, 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>::
+~Auto_Function_Wrapper()
+{
+ if(arguments_) { delete arguments_; }
+}
+
+template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T>
VALUE Auto_Function_Wrapper<Func_T, void, 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>::
call(int argc, VALUE* argv, VALUE self)
{
Auto_Function_Wrapper<Func_T, void, 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> * wrapper = 0;
try
@@ -704,70 +756,72 @@
rb_scan_args(argc, argv, args->formatString(Num_Args - 1) .c_str()
, &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10, &varg11, &varg12, &varg13);
Arg0_T arg0 = from_ruby<Arg0_T>(self);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(0, varg0);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(1, varg1);
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(2, varg2);
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(3, varg3);
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(4, varg4);
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(5, varg5);
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(6, varg6);
- typedef typename sanitize< Arg8_T >::Type Arg8_Type;
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(7, varg7);
- typedef typename sanitize< Arg9_T >::Type Arg9_Type;
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(8, varg8);
- typedef typename sanitize< Arg10_T >::Type Arg10_Type;
+ typedef typename sanitize< Arg10_T >::Type Arg10_Type;
Arg10_Type arg10 = args->getArgumentOrDefault<Arg10_Type>(9, varg9);
- typedef typename sanitize< Arg11_T >::Type Arg11_Type;
+ typedef typename sanitize< Arg11_T >::Type Arg11_Type;
Arg11_Type arg11 = args->getArgumentOrDefault<Arg11_Type>(10, varg10);
- typedef typename sanitize< Arg12_T >::Type Arg12_Type;
+ typedef typename sanitize< Arg12_T >::Type Arg12_Type;
Arg12_Type arg12 = args->getArgumentOrDefault<Arg12_Type>(11, varg11);
- typedef typename sanitize< Arg13_T >::Type Arg13_Type;
+ typedef typename sanitize< Arg13_T >::Type Arg13_Type;
Arg13_Type arg13 = args->getArgumentOrDefault<Arg13_Type>(12, varg12);
+
wrapper->func_(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13);
return Qnil;
} else {
rb_scan_args(argc, argv, args->formatString(Num_Args).c_str()
, &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10, &varg11, &varg12, &varg13);
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
- typedef typename sanitize< Arg8_T >::Type Arg8_Type;
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(8, varg8);
- typedef typename sanitize< Arg9_T >::Type Arg9_Type;
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(9, varg9);
- typedef typename sanitize< Arg10_T >::Type Arg10_Type;
+ typedef typename sanitize< Arg10_T >::Type Arg10_Type;
Arg10_Type arg10 = args->getArgumentOrDefault<Arg10_Type>(10, varg10);
- typedef typename sanitize< Arg11_T >::Type Arg11_Type;
+ typedef typename sanitize< Arg11_T >::Type Arg11_Type;
Arg11_Type arg11 = args->getArgumentOrDefault<Arg11_Type>(11, varg11);
- typedef typename sanitize< Arg12_T >::Type Arg12_Type;
+ typedef typename sanitize< Arg12_T >::Type Arg12_Type;
Arg12_Type arg12 = args->getArgumentOrDefault<Arg12_Type>(12, varg12);
- typedef typename sanitize< Arg13_T >::Type Arg13_Type;
+ typedef typename sanitize< Arg13_T >::Type Arg13_Type;
Arg13_Type arg13 = args->getArgumentOrDefault<Arg13_Type>(13, varg13);
+
wrapper->func_(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13);
return Qnil;
}
}
catch(...)
@@ -805,10 +859,17 @@
arguments_ = arguments;
}
}
template<typename Func_T, typename Ret_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>
+Auto_Function_Wrapper<Func_T, Ret_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>::
+~Auto_Function_Wrapper()
+{
+ if(arguments_) { delete arguments_; }
+}
+
+template<typename Func_T, typename Ret_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>
VALUE Auto_Function_Wrapper<Func_T, Ret_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>::
call(int argc, VALUE *argv, VALUE self)
{
Auto_Function_Wrapper<Func_T, Ret_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> * wrapper = 0;
try
@@ -830,65 +891,67 @@
rb_scan_args(argc, argv, args->formatString(Num_Args - 1).c_str()
, &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10, &varg11, &varg12);
Arg0_T arg0 = from_ruby<Arg0_T>(self);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(0, varg0);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(1, varg1);
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(2, varg2);
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(3, varg3);
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(4, varg4);
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(5, varg5);
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(6, varg6);
- typedef typename sanitize< Arg8_T >::Type Arg8_Type;
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(7, varg7);
- typedef typename sanitize< Arg9_T >::Type Arg9_Type;
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(8, varg8);
- typedef typename sanitize< Arg10_T >::Type Arg10_Type;
+ typedef typename sanitize< Arg10_T >::Type Arg10_Type;
Arg10_Type arg10 = args->getArgumentOrDefault<Arg10_Type>(9, varg9);
- typedef typename sanitize< Arg11_T >::Type Arg11_Type;
+ typedef typename sanitize< Arg11_T >::Type Arg11_Type;
Arg11_Type arg11 = args->getArgumentOrDefault<Arg11_Type>(10, varg10);
- typedef typename sanitize< Arg12_T >::Type Arg12_Type;
+ typedef typename sanitize< Arg12_T >::Type Arg12_Type;
Arg12_Type arg12 = args->getArgumentOrDefault<Arg12_Type>(11, varg11);
+
return to_ruby(wrapper->func_(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12));
} else {
rb_scan_args(argc, argv, args->formatString(Num_Args).c_str()
, &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10, &varg11, &varg12);
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
- typedef typename sanitize< Arg8_T >::Type Arg8_Type;
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(8, varg8);
- typedef typename sanitize< Arg9_T >::Type Arg9_Type;
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(9, varg9);
- typedef typename sanitize< Arg10_T >::Type Arg10_Type;
+ typedef typename sanitize< Arg10_T >::Type Arg10_Type;
Arg10_Type arg10 = args->getArgumentOrDefault<Arg10_Type>(10, varg10);
- typedef typename sanitize< Arg11_T >::Type Arg11_Type;
+ typedef typename sanitize< Arg11_T >::Type Arg11_Type;
Arg11_Type arg11 = args->getArgumentOrDefault<Arg11_Type>(11, varg11);
- typedef typename sanitize< Arg12_T >::Type Arg12_Type;
+ typedef typename sanitize< Arg12_T >::Type Arg12_Type;
Arg12_Type arg12 = args->getArgumentOrDefault<Arg12_Type>(12, varg12);
+
return to_ruby(wrapper->func_(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12));
}
}
catch(...)
{
@@ -924,10 +987,17 @@
arguments_ = arguments;
}
}
template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T>
+Auto_Function_Wrapper<Func_T, void, 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>::
+~Auto_Function_Wrapper()
+{
+ if(arguments_) { delete arguments_; }
+}
+
+template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T>
VALUE Auto_Function_Wrapper<Func_T, void, 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>::
call(int argc, VALUE* argv, VALUE self)
{
Auto_Function_Wrapper<Func_T, void, 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> * wrapper = 0;
try
@@ -949,66 +1019,68 @@
rb_scan_args(argc, argv, args->formatString(Num_Args - 1) .c_str()
, &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10, &varg11, &varg12);
Arg0_T arg0 = from_ruby<Arg0_T>(self);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(0, varg0);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(1, varg1);
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(2, varg2);
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(3, varg3);
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(4, varg4);
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(5, varg5);
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(6, varg6);
- typedef typename sanitize< Arg8_T >::Type Arg8_Type;
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(7, varg7);
- typedef typename sanitize< Arg9_T >::Type Arg9_Type;
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(8, varg8);
- typedef typename sanitize< Arg10_T >::Type Arg10_Type;
+ typedef typename sanitize< Arg10_T >::Type Arg10_Type;
Arg10_Type arg10 = args->getArgumentOrDefault<Arg10_Type>(9, varg9);
- typedef typename sanitize< Arg11_T >::Type Arg11_Type;
+ typedef typename sanitize< Arg11_T >::Type Arg11_Type;
Arg11_Type arg11 = args->getArgumentOrDefault<Arg11_Type>(10, varg10);
- typedef typename sanitize< Arg12_T >::Type Arg12_Type;
+ typedef typename sanitize< Arg12_T >::Type Arg12_Type;
Arg12_Type arg12 = args->getArgumentOrDefault<Arg12_Type>(11, varg11);
+
wrapper->func_(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12);
return Qnil;
} else {
rb_scan_args(argc, argv, args->formatString(Num_Args).c_str()
, &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10, &varg11, &varg12);
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
- typedef typename sanitize< Arg8_T >::Type Arg8_Type;
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(8, varg8);
- typedef typename sanitize< Arg9_T >::Type Arg9_Type;
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(9, varg9);
- typedef typename sanitize< Arg10_T >::Type Arg10_Type;
+ typedef typename sanitize< Arg10_T >::Type Arg10_Type;
Arg10_Type arg10 = args->getArgumentOrDefault<Arg10_Type>(10, varg10);
- typedef typename sanitize< Arg11_T >::Type Arg11_Type;
+ typedef typename sanitize< Arg11_T >::Type Arg11_Type;
Arg11_Type arg11 = args->getArgumentOrDefault<Arg11_Type>(11, varg11);
- typedef typename sanitize< Arg12_T >::Type Arg12_Type;
+ typedef typename sanitize< Arg12_T >::Type Arg12_Type;
Arg12_Type arg12 = args->getArgumentOrDefault<Arg12_Type>(12, varg12);
+
wrapper->func_(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12);
return Qnil;
}
}
catch(...)
@@ -1046,10 +1118,17 @@
arguments_ = arguments;
}
}
template<typename Func_T, typename Ret_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>
+Auto_Function_Wrapper<Func_T, Ret_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>::
+~Auto_Function_Wrapper()
+{
+ if(arguments_) { delete arguments_; }
+}
+
+template<typename Func_T, typename Ret_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>
VALUE Auto_Function_Wrapper<Func_T, Ret_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>::
call(int argc, VALUE *argv, VALUE self)
{
Auto_Function_Wrapper<Func_T, Ret_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> * wrapper = 0;
try
@@ -1071,61 +1150,63 @@
rb_scan_args(argc, argv, args->formatString(Num_Args - 1).c_str()
, &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10, &varg11);
Arg0_T arg0 = from_ruby<Arg0_T>(self);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(0, varg0);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(1, varg1);
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(2, varg2);
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(3, varg3);
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(4, varg4);
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(5, varg5);
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(6, varg6);
- typedef typename sanitize< Arg8_T >::Type Arg8_Type;
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(7, varg7);
- typedef typename sanitize< Arg9_T >::Type Arg9_Type;
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(8, varg8);
- typedef typename sanitize< Arg10_T >::Type Arg10_Type;
+ typedef typename sanitize< Arg10_T >::Type Arg10_Type;
Arg10_Type arg10 = args->getArgumentOrDefault<Arg10_Type>(9, varg9);
- typedef typename sanitize< Arg11_T >::Type Arg11_Type;
+ typedef typename sanitize< Arg11_T >::Type Arg11_Type;
Arg11_Type arg11 = args->getArgumentOrDefault<Arg11_Type>(10, varg10);
+
return to_ruby(wrapper->func_(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11));
} else {
rb_scan_args(argc, argv, args->formatString(Num_Args).c_str()
, &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10, &varg11);
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
- typedef typename sanitize< Arg8_T >::Type Arg8_Type;
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(8, varg8);
- typedef typename sanitize< Arg9_T >::Type Arg9_Type;
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(9, varg9);
- typedef typename sanitize< Arg10_T >::Type Arg10_Type;
+ typedef typename sanitize< Arg10_T >::Type Arg10_Type;
Arg10_Type arg10 = args->getArgumentOrDefault<Arg10_Type>(10, varg10);
- typedef typename sanitize< Arg11_T >::Type Arg11_Type;
+ typedef typename sanitize< Arg11_T >::Type Arg11_Type;
Arg11_Type arg11 = args->getArgumentOrDefault<Arg11_Type>(11, varg11);
+
return to_ruby(wrapper->func_(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11));
}
}
catch(...)
{
@@ -1161,10 +1242,17 @@
arguments_ = arguments;
}
}
template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T>
+Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T>::
+~Auto_Function_Wrapper()
+{
+ if(arguments_) { delete arguments_; }
+}
+
+template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T>
VALUE Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T>::
call(int argc, VALUE* argv, VALUE self)
{
Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T> * wrapper = 0;
try
@@ -1186,62 +1274,64 @@
rb_scan_args(argc, argv, args->formatString(Num_Args - 1) .c_str()
, &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10, &varg11);
Arg0_T arg0 = from_ruby<Arg0_T>(self);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(0, varg0);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(1, varg1);
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(2, varg2);
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(3, varg3);
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(4, varg4);
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(5, varg5);
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(6, varg6);
- typedef typename sanitize< Arg8_T >::Type Arg8_Type;
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(7, varg7);
- typedef typename sanitize< Arg9_T >::Type Arg9_Type;
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(8, varg8);
- typedef typename sanitize< Arg10_T >::Type Arg10_Type;
+ typedef typename sanitize< Arg10_T >::Type Arg10_Type;
Arg10_Type arg10 = args->getArgumentOrDefault<Arg10_Type>(9, varg9);
- typedef typename sanitize< Arg11_T >::Type Arg11_Type;
+ typedef typename sanitize< Arg11_T >::Type Arg11_Type;
Arg11_Type arg11 = args->getArgumentOrDefault<Arg11_Type>(10, varg10);
+
wrapper->func_(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11);
return Qnil;
} else {
rb_scan_args(argc, argv, args->formatString(Num_Args).c_str()
, &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10, &varg11);
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
- typedef typename sanitize< Arg8_T >::Type Arg8_Type;
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(8, varg8);
- typedef typename sanitize< Arg9_T >::Type Arg9_Type;
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(9, varg9);
- typedef typename sanitize< Arg10_T >::Type Arg10_Type;
+ typedef typename sanitize< Arg10_T >::Type Arg10_Type;
Arg10_Type arg10 = args->getArgumentOrDefault<Arg10_Type>(10, varg10);
- typedef typename sanitize< Arg11_T >::Type Arg11_Type;
+ typedef typename sanitize< Arg11_T >::Type Arg11_Type;
Arg11_Type arg11 = args->getArgumentOrDefault<Arg11_Type>(11, varg11);
+
wrapper->func_(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11);
return Qnil;
}
}
catch(...)
@@ -1279,10 +1369,17 @@
arguments_ = arguments;
}
}
template<typename Func_T, typename Ret_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>
+Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T>::
+~Auto_Function_Wrapper()
+{
+ if(arguments_) { delete arguments_; }
+}
+
+template<typename Func_T, typename Ret_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>
VALUE Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T>::
call(int argc, VALUE *argv, VALUE self)
{
Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T> * wrapper = 0;
try
@@ -1304,57 +1401,59 @@
rb_scan_args(argc, argv, args->formatString(Num_Args - 1).c_str()
, &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10);
Arg0_T arg0 = from_ruby<Arg0_T>(self);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(0, varg0);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(1, varg1);
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(2, varg2);
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(3, varg3);
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(4, varg4);
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(5, varg5);
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(6, varg6);
- typedef typename sanitize< Arg8_T >::Type Arg8_Type;
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(7, varg7);
- typedef typename sanitize< Arg9_T >::Type Arg9_Type;
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(8, varg8);
- typedef typename sanitize< Arg10_T >::Type Arg10_Type;
+ typedef typename sanitize< Arg10_T >::Type Arg10_Type;
Arg10_Type arg10 = args->getArgumentOrDefault<Arg10_Type>(9, varg9);
+
return to_ruby(wrapper->func_(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10));
} else {
rb_scan_args(argc, argv, args->formatString(Num_Args).c_str()
, &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10);
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
- typedef typename sanitize< Arg8_T >::Type Arg8_Type;
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(8, varg8);
- typedef typename sanitize< Arg9_T >::Type Arg9_Type;
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(9, varg9);
- typedef typename sanitize< Arg10_T >::Type Arg10_Type;
+ typedef typename sanitize< Arg10_T >::Type Arg10_Type;
Arg10_Type arg10 = args->getArgumentOrDefault<Arg10_Type>(10, varg10);
+
return to_ruby(wrapper->func_(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10));
}
}
catch(...)
{
@@ -1390,10 +1489,17 @@
arguments_ = arguments;
}
}
template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T>
+Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T>::
+~Auto_Function_Wrapper()
+{
+ if(arguments_) { delete arguments_; }
+}
+
+template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T>
VALUE Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T>::
call(int argc, VALUE* argv, VALUE self)
{
Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T> * wrapper = 0;
try
@@ -1415,58 +1521,60 @@
rb_scan_args(argc, argv, args->formatString(Num_Args - 1) .c_str()
, &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10);
Arg0_T arg0 = from_ruby<Arg0_T>(self);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(0, varg0);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(1, varg1);
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(2, varg2);
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(3, varg3);
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(4, varg4);
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(5, varg5);
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(6, varg6);
- typedef typename sanitize< Arg8_T >::Type Arg8_Type;
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(7, varg7);
- typedef typename sanitize< Arg9_T >::Type Arg9_Type;
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(8, varg8);
- typedef typename sanitize< Arg10_T >::Type Arg10_Type;
+ typedef typename sanitize< Arg10_T >::Type Arg10_Type;
Arg10_Type arg10 = args->getArgumentOrDefault<Arg10_Type>(9, varg9);
+
wrapper->func_(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10);
return Qnil;
} else {
rb_scan_args(argc, argv, args->formatString(Num_Args).c_str()
, &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10);
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
- typedef typename sanitize< Arg8_T >::Type Arg8_Type;
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(8, varg8);
- typedef typename sanitize< Arg9_T >::Type Arg9_Type;
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(9, varg9);
- typedef typename sanitize< Arg10_T >::Type Arg10_Type;
+ typedef typename sanitize< Arg10_T >::Type Arg10_Type;
Arg10_Type arg10 = args->getArgumentOrDefault<Arg10_Type>(10, varg10);
+
wrapper->func_(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10);
return Qnil;
}
}
catch(...)
@@ -1504,10 +1612,17 @@
arguments_ = arguments;
}
}
template<typename Func_T, typename Ret_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>
+Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T>::
+~Auto_Function_Wrapper()
+{
+ if(arguments_) { delete arguments_; }
+}
+
+template<typename Func_T, typename Ret_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>
VALUE Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T>::
call(int argc, VALUE *argv, VALUE self)
{
Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T> * wrapper = 0;
try
@@ -1529,53 +1644,55 @@
rb_scan_args(argc, argv, args->formatString(Num_Args - 1).c_str()
, &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9);
Arg0_T arg0 = from_ruby<Arg0_T>(self);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(0, varg0);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(1, varg1);
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(2, varg2);
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(3, varg3);
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(4, varg4);
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(5, varg5);
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(6, varg6);
- typedef typename sanitize< Arg8_T >::Type Arg8_Type;
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(7, varg7);
- typedef typename sanitize< Arg9_T >::Type Arg9_Type;
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(8, varg8);
+
return to_ruby(wrapper->func_(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9));
} else {
rb_scan_args(argc, argv, args->formatString(Num_Args).c_str()
, &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9);
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
- typedef typename sanitize< Arg8_T >::Type Arg8_Type;
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(8, varg8);
- typedef typename sanitize< Arg9_T >::Type Arg9_Type;
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(9, varg9);
+
return to_ruby(wrapper->func_(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9));
}
}
catch(...)
{
@@ -1611,10 +1728,17 @@
arguments_ = arguments;
}
}
template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T>
+Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T>::
+~Auto_Function_Wrapper()
+{
+ if(arguments_) { delete arguments_; }
+}
+
+template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T>
VALUE Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T>::
call(int argc, VALUE* argv, VALUE self)
{
Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T> * wrapper = 0;
try
@@ -1636,54 +1760,56 @@
rb_scan_args(argc, argv, args->formatString(Num_Args - 1) .c_str()
, &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9);
Arg0_T arg0 = from_ruby<Arg0_T>(self);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(0, varg0);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(1, varg1);
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(2, varg2);
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(3, varg3);
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(4, varg4);
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(5, varg5);
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(6, varg6);
- typedef typename sanitize< Arg8_T >::Type Arg8_Type;
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(7, varg7);
- typedef typename sanitize< Arg9_T >::Type Arg9_Type;
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(8, varg8);
+
wrapper->func_(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
return Qnil;
} else {
rb_scan_args(argc, argv, args->formatString(Num_Args).c_str()
, &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9);
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
- typedef typename sanitize< Arg8_T >::Type Arg8_Type;
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(8, varg8);
- typedef typename sanitize< Arg9_T >::Type Arg9_Type;
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(9, varg9);
+
wrapper->func_(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
return Qnil;
}
}
catch(...)
@@ -1721,10 +1847,17 @@
arguments_ = arguments;
}
}
template<typename Func_T, typename Ret_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>
+Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T>::
+~Auto_Function_Wrapper()
+{
+ if(arguments_) { delete arguments_; }
+}
+
+template<typename Func_T, typename Ret_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>
VALUE Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T>::
call(int argc, VALUE *argv, VALUE self)
{
Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T> * wrapper = 0;
try
@@ -1746,49 +1879,51 @@
rb_scan_args(argc, argv, args->formatString(Num_Args - 1).c_str()
, &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8);
Arg0_T arg0 = from_ruby<Arg0_T>(self);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(0, varg0);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(1, varg1);
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(2, varg2);
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(3, varg3);
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(4, varg4);
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(5, varg5);
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(6, varg6);
- typedef typename sanitize< Arg8_T >::Type Arg8_Type;
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(7, varg7);
+
return to_ruby(wrapper->func_(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8));
} else {
rb_scan_args(argc, argv, args->formatString(Num_Args).c_str()
, &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8);
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
- typedef typename sanitize< Arg8_T >::Type Arg8_Type;
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(8, varg8);
+
return to_ruby(wrapper->func_(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8));
}
}
catch(...)
{
@@ -1824,10 +1959,17 @@
arguments_ = arguments;
}
}
template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T>
+Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T>::
+~Auto_Function_Wrapper()
+{
+ if(arguments_) { delete arguments_; }
+}
+
+template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T>
VALUE Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T>::
call(int argc, VALUE* argv, VALUE self)
{
Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T> * wrapper = 0;
try
@@ -1849,50 +1991,52 @@
rb_scan_args(argc, argv, args->formatString(Num_Args - 1) .c_str()
, &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8);
Arg0_T arg0 = from_ruby<Arg0_T>(self);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(0, varg0);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(1, varg1);
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(2, varg2);
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(3, varg3);
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(4, varg4);
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(5, varg5);
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(6, varg6);
- typedef typename sanitize< Arg8_T >::Type Arg8_Type;
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(7, varg7);
+
wrapper->func_(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
return Qnil;
} else {
rb_scan_args(argc, argv, args->formatString(Num_Args).c_str()
, &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8);
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
- typedef typename sanitize< Arg8_T >::Type Arg8_Type;
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(8, varg8);
+
wrapper->func_(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
return Qnil;
}
}
catch(...)
@@ -1930,10 +2074,17 @@
arguments_ = arguments;
}
}
template<typename Func_T, typename Ret_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>
+Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T>::
+~Auto_Function_Wrapper()
+{
+ if(arguments_) { delete arguments_; }
+}
+
+template<typename Func_T, typename Ret_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>
VALUE Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T>::
call(int argc, VALUE *argv, VALUE self)
{
Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T> * wrapper = 0;
try
@@ -1955,45 +2106,47 @@
rb_scan_args(argc, argv, args->formatString(Num_Args - 1).c_str()
, &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7);
Arg0_T arg0 = from_ruby<Arg0_T>(self);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(0, varg0);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(1, varg1);
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(2, varg2);
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(3, varg3);
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(4, varg4);
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(5, varg5);
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(6, varg6);
+
return to_ruby(wrapper->func_(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7));
} else {
rb_scan_args(argc, argv, args->formatString(Num_Args).c_str()
, &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7);
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
+
return to_ruby(wrapper->func_(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7));
}
}
catch(...)
{
@@ -2029,10 +2182,17 @@
arguments_ = arguments;
}
}
template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T>
+Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T>::
+~Auto_Function_Wrapper()
+{
+ if(arguments_) { delete arguments_; }
+}
+
+template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T>
VALUE Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T>::
call(int argc, VALUE* argv, VALUE self)
{
Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T> * wrapper = 0;
try
@@ -2054,46 +2214,48 @@
rb_scan_args(argc, argv, args->formatString(Num_Args - 1) .c_str()
, &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7);
Arg0_T arg0 = from_ruby<Arg0_T>(self);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(0, varg0);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(1, varg1);
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(2, varg2);
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(3, varg3);
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(4, varg4);
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(5, varg5);
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(6, varg6);
+
wrapper->func_(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
return Qnil;
} else {
rb_scan_args(argc, argv, args->formatString(Num_Args).c_str()
, &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7);
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
- typedef typename sanitize< Arg7_T >::Type Arg7_Type;
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
+
wrapper->func_(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
return Qnil;
}
}
catch(...)
@@ -2131,10 +2293,17 @@
arguments_ = arguments;
}
}
template<typename Func_T, typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T>
+Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T>::
+~Auto_Function_Wrapper()
+{
+ if(arguments_) { delete arguments_; }
+}
+
+template<typename Func_T, typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T>
VALUE Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T>::
call(int argc, VALUE *argv, VALUE self)
{
Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T> * wrapper = 0;
try
@@ -2156,41 +2325,43 @@
rb_scan_args(argc, argv, args->formatString(Num_Args - 1).c_str()
, &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6);
Arg0_T arg0 = from_ruby<Arg0_T>(self);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(0, varg0);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(1, varg1);
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(2, varg2);
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(3, varg3);
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(4, varg4);
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(5, varg5);
+
return to_ruby(wrapper->func_(arg0, arg1, arg2, arg3, arg4, arg5, arg6));
} else {
rb_scan_args(argc, argv, args->formatString(Num_Args).c_str()
, &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6);
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
+
return to_ruby(wrapper->func_(arg0, arg1, arg2, arg3, arg4, arg5, arg6));
}
}
catch(...)
{
@@ -2226,10 +2397,17 @@
arguments_ = arguments;
}
}
template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T>
+Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T>::
+~Auto_Function_Wrapper()
+{
+ if(arguments_) { delete arguments_; }
+}
+
+template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T>
VALUE Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T>::
call(int argc, VALUE* argv, VALUE self)
{
Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T> * wrapper = 0;
try
@@ -2251,42 +2429,44 @@
rb_scan_args(argc, argv, args->formatString(Num_Args - 1) .c_str()
, &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6);
Arg0_T arg0 = from_ruby<Arg0_T>(self);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(0, varg0);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(1, varg1);
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(2, varg2);
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(3, varg3);
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(4, varg4);
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(5, varg5);
+
wrapper->func_(arg0, arg1, arg2, arg3, arg4, arg5, arg6);
return Qnil;
} else {
rb_scan_args(argc, argv, args->formatString(Num_Args).c_str()
, &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6);
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
- typedef typename sanitize< Arg6_T >::Type Arg6_Type;
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
+
wrapper->func_(arg0, arg1, arg2, arg3, arg4, arg5, arg6);
return Qnil;
}
}
catch(...)
@@ -2324,10 +2504,17 @@
arguments_ = arguments;
}
}
template<typename Func_T, typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T>
+Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T>::
+~Auto_Function_Wrapper()
+{
+ if(arguments_) { delete arguments_; }
+}
+
+template<typename Func_T, typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T>
VALUE Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T>::
call(int argc, VALUE *argv, VALUE self)
{
Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T> * wrapper = 0;
try
@@ -2349,37 +2536,39 @@
rb_scan_args(argc, argv, args->formatString(Num_Args - 1).c_str()
, &varg0, &varg1, &varg2, &varg3, &varg4, &varg5);
Arg0_T arg0 = from_ruby<Arg0_T>(self);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(0, varg0);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(1, varg1);
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(2, varg2);
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(3, varg3);
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(4, varg4);
+
return to_ruby(wrapper->func_(arg0, arg1, arg2, arg3, arg4, arg5));
} else {
rb_scan_args(argc, argv, args->formatString(Num_Args).c_str()
, &varg0, &varg1, &varg2, &varg3, &varg4, &varg5);
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
+
return to_ruby(wrapper->func_(arg0, arg1, arg2, arg3, arg4, arg5));
}
}
catch(...)
{
@@ -2415,10 +2604,17 @@
arguments_ = arguments;
}
}
template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T>
+Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T>::
+~Auto_Function_Wrapper()
+{
+ if(arguments_) { delete arguments_; }
+}
+
+template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T>
VALUE Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T>::
call(int argc, VALUE* argv, VALUE self)
{
Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T> * wrapper = 0;
try
@@ -2440,38 +2636,40 @@
rb_scan_args(argc, argv, args->formatString(Num_Args - 1) .c_str()
, &varg0, &varg1, &varg2, &varg3, &varg4, &varg5);
Arg0_T arg0 = from_ruby<Arg0_T>(self);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(0, varg0);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(1, varg1);
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(2, varg2);
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(3, varg3);
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(4, varg4);
+
wrapper->func_(arg0, arg1, arg2, arg3, arg4, arg5);
return Qnil;
} else {
rb_scan_args(argc, argv, args->formatString(Num_Args).c_str()
, &varg0, &varg1, &varg2, &varg3, &varg4, &varg5);
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
- typedef typename sanitize< Arg5_T >::Type Arg5_Type;
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
+
wrapper->func_(arg0, arg1, arg2, arg3, arg4, arg5);
return Qnil;
}
}
catch(...)
@@ -2509,10 +2707,17 @@
arguments_ = arguments;
}
}
template<typename Func_T, typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
+Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T>::
+~Auto_Function_Wrapper()
+{
+ if(arguments_) { delete arguments_; }
+}
+
+template<typename Func_T, typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
VALUE Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T>::
call(int argc, VALUE *argv, VALUE self)
{
Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T> * wrapper = 0;
try
@@ -2534,33 +2739,35 @@
rb_scan_args(argc, argv, args->formatString(Num_Args - 1).c_str()
, &varg0, &varg1, &varg2, &varg3, &varg4);
Arg0_T arg0 = from_ruby<Arg0_T>(self);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(0, varg0);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(1, varg1);
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(2, varg2);
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(3, varg3);
+
return to_ruby(wrapper->func_(arg0, arg1, arg2, arg3, arg4));
} else {
rb_scan_args(argc, argv, args->formatString(Num_Args).c_str()
, &varg0, &varg1, &varg2, &varg3, &varg4);
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
+
return to_ruby(wrapper->func_(arg0, arg1, arg2, arg3, arg4));
}
}
catch(...)
{
@@ -2596,10 +2803,17 @@
arguments_ = arguments;
}
}
template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
+Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T>::
+~Auto_Function_Wrapper()
+{
+ if(arguments_) { delete arguments_; }
+}
+
+template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
VALUE Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T>::
call(int argc, VALUE* argv, VALUE self)
{
Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T> * wrapper = 0;
try
@@ -2621,34 +2835,36 @@
rb_scan_args(argc, argv, args->formatString(Num_Args - 1) .c_str()
, &varg0, &varg1, &varg2, &varg3, &varg4);
Arg0_T arg0 = from_ruby<Arg0_T>(self);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(0, varg0);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(1, varg1);
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(2, varg2);
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(3, varg3);
+
wrapper->func_(arg0, arg1, arg2, arg3, arg4);
return Qnil;
} else {
rb_scan_args(argc, argv, args->formatString(Num_Args).c_str()
, &varg0, &varg1, &varg2, &varg3, &varg4);
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
- typedef typename sanitize< Arg4_T >::Type Arg4_Type;
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
+
wrapper->func_(arg0, arg1, arg2, arg3, arg4);
return Qnil;
}
}
catch(...)
@@ -2686,10 +2902,17 @@
arguments_ = arguments;
}
}
template<typename Func_T, typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
+Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T>::
+~Auto_Function_Wrapper()
+{
+ if(arguments_) { delete arguments_; }
+}
+
+template<typename Func_T, typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
VALUE Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T>::
call(int argc, VALUE *argv, VALUE self)
{
Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T> * wrapper = 0;
try
@@ -2711,29 +2934,31 @@
rb_scan_args(argc, argv, args->formatString(Num_Args - 1).c_str()
, &varg0, &varg1, &varg2, &varg3);
Arg0_T arg0 = from_ruby<Arg0_T>(self);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(0, varg0);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(1, varg1);
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(2, varg2);
+
return to_ruby(wrapper->func_(arg0, arg1, arg2, arg3));
} else {
rb_scan_args(argc, argv, args->formatString(Num_Args).c_str()
, &varg0, &varg1, &varg2, &varg3);
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
+
return to_ruby(wrapper->func_(arg0, arg1, arg2, arg3));
}
}
catch(...)
{
@@ -2769,10 +2994,17 @@
arguments_ = arguments;
}
}
template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
+Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T, Arg3_T>::
+~Auto_Function_Wrapper()
+{
+ if(arguments_) { delete arguments_; }
+}
+
+template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
VALUE Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T, Arg3_T>::
call(int argc, VALUE* argv, VALUE self)
{
Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T, Arg3_T> * wrapper = 0;
try
@@ -2794,30 +3026,32 @@
rb_scan_args(argc, argv, args->formatString(Num_Args - 1) .c_str()
, &varg0, &varg1, &varg2, &varg3);
Arg0_T arg0 = from_ruby<Arg0_T>(self);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(0, varg0);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(1, varg1);
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(2, varg2);
+
wrapper->func_(arg0, arg1, arg2, arg3);
return Qnil;
} else {
rb_scan_args(argc, argv, args->formatString(Num_Args).c_str()
, &varg0, &varg1, &varg2, &varg3);
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
- typedef typename sanitize< Arg3_T >::Type Arg3_Type;
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
+
wrapper->func_(arg0, arg1, arg2, arg3);
return Qnil;
}
}
catch(...)
@@ -2855,10 +3089,17 @@
arguments_ = arguments;
}
}
template<typename Func_T, typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T>
+Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T>::
+~Auto_Function_Wrapper()
+{
+ if(arguments_) { delete arguments_; }
+}
+
+template<typename Func_T, typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T>
VALUE Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T>::
call(int argc, VALUE *argv, VALUE self)
{
Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T, Arg2_T> * wrapper = 0;
try
@@ -2880,25 +3121,27 @@
rb_scan_args(argc, argv, args->formatString(Num_Args - 1).c_str()
, &varg0, &varg1, &varg2);
Arg0_T arg0 = from_ruby<Arg0_T>(self);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(0, varg0);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(1, varg1);
+
return to_ruby(wrapper->func_(arg0, arg1, arg2));
} else {
rb_scan_args(argc, argv, args->formatString(Num_Args).c_str()
, &varg0, &varg1, &varg2);
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
+
return to_ruby(wrapper->func_(arg0, arg1, arg2));
}
}
catch(...)
{
@@ -2934,10 +3177,17 @@
arguments_ = arguments;
}
}
template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T>
+Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T>::
+~Auto_Function_Wrapper()
+{
+ if(arguments_) { delete arguments_; }
+}
+
+template<typename Func_T, typename Arg0_T, typename Arg1_T, typename Arg2_T>
VALUE Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T>::
call(int argc, VALUE* argv, VALUE self)
{
Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T, Arg2_T> * wrapper = 0;
try
@@ -2959,26 +3209,28 @@
rb_scan_args(argc, argv, args->formatString(Num_Args - 1) .c_str()
, &varg0, &varg1, &varg2);
Arg0_T arg0 = from_ruby<Arg0_T>(self);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(0, varg0);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(1, varg1);
+
wrapper->func_(arg0, arg1, arg2);
return Qnil;
} else {
rb_scan_args(argc, argv, args->formatString(Num_Args).c_str()
, &varg0, &varg1, &varg2);
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
- typedef typename sanitize< Arg2_T >::Type Arg2_Type;
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
+
wrapper->func_(arg0, arg1, arg2);
return Qnil;
}
}
catch(...)
@@ -3016,10 +3268,17 @@
arguments_ = arguments;
}
}
template<typename Func_T, typename Ret_T, typename Arg0_T, typename Arg1_T>
+Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T>::
+~Auto_Function_Wrapper()
+{
+ if(arguments_) { delete arguments_; }
+}
+
+template<typename Func_T, typename Ret_T, typename Arg0_T, typename Arg1_T>
VALUE Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T>::
call(int argc, VALUE *argv, VALUE self)
{
Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T, Arg1_T> * wrapper = 0;
try
@@ -3041,21 +3300,23 @@
rb_scan_args(argc, argv, args->formatString(Num_Args - 1).c_str()
, &varg0, &varg1);
Arg0_T arg0 = from_ruby<Arg0_T>(self);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(0, varg0);
+
return to_ruby(wrapper->func_(arg0, arg1));
} else {
rb_scan_args(argc, argv, args->formatString(Num_Args).c_str()
, &varg0, &varg1);
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
+
return to_ruby(wrapper->func_(arg0, arg1));
}
}
catch(...)
{
@@ -3091,10 +3352,17 @@
arguments_ = arguments;
}
}
template<typename Func_T, typename Arg0_T, typename Arg1_T>
+Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T>::
+~Auto_Function_Wrapper()
+{
+ if(arguments_) { delete arguments_; }
+}
+
+template<typename Func_T, typename Arg0_T, typename Arg1_T>
VALUE Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T>::
call(int argc, VALUE* argv, VALUE self)
{
Auto_Function_Wrapper<Func_T, void, Arg0_T, Arg1_T> * wrapper = 0;
try
@@ -3116,22 +3384,24 @@
rb_scan_args(argc, argv, args->formatString(Num_Args - 1) .c_str()
, &varg0, &varg1);
Arg0_T arg0 = from_ruby<Arg0_T>(self);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(0, varg0);
+
wrapper->func_(arg0, arg1);
return Qnil;
} else {
rb_scan_args(argc, argv, args->formatString(Num_Args).c_str()
, &varg0, &varg1);
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
- typedef typename sanitize< Arg1_T >::Type Arg1_Type;
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
+
wrapper->func_(arg0, arg1);
return Qnil;
}
}
catch(...)
@@ -3169,10 +3439,17 @@
arguments_ = arguments;
}
}
template<typename Func_T, typename Ret_T, typename Arg0_T>
+Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T>::
+~Auto_Function_Wrapper()
+{
+ if(arguments_) { delete arguments_; }
+}
+
+template<typename Func_T, typename Ret_T, typename Arg0_T>
VALUE Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T>::
call(int argc, VALUE *argv, VALUE self)
{
Auto_Function_Wrapper<Func_T, Ret_T, Arg0_T> * wrapper = 0;
try
@@ -3194,17 +3471,19 @@
rb_scan_args(argc, argv, args->formatString(Num_Args - 1).c_str()
, &varg0);
Arg0_T arg0 = from_ruby<Arg0_T>(self);
+
return to_ruby(wrapper->func_(arg0));
} else {
rb_scan_args(argc, argv, args->formatString(Num_Args).c_str()
, &varg0);
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
+
return to_ruby(wrapper->func_(arg0));
}
}
catch(...)
{
@@ -3240,10 +3519,17 @@
arguments_ = arguments;
}
}
template<typename Func_T, typename Arg0_T>
+Auto_Function_Wrapper<Func_T, void, Arg0_T>::
+~Auto_Function_Wrapper()
+{
+ if(arguments_) { delete arguments_; }
+}
+
+template<typename Func_T, typename Arg0_T>
VALUE Auto_Function_Wrapper<Func_T, void, Arg0_T>::
call(int argc, VALUE* argv, VALUE self)
{
Auto_Function_Wrapper<Func_T, void, Arg0_T> * wrapper = 0;
try
@@ -3265,18 +3551,20 @@
rb_scan_args(argc, argv, args->formatString(Num_Args - 1) .c_str()
, &varg0);
Arg0_T arg0 = from_ruby<Arg0_T>(self);
+
wrapper->func_(arg0);
return Qnil;
} else {
rb_scan_args(argc, argv, args->formatString(Num_Args).c_str()
, &varg0);
- typedef typename sanitize< Arg0_T >::Type Arg0_Type;
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
+
wrapper->func_(arg0);
return Qnil;
}
}
catch(...)
@@ -3295,10 +3583,11 @@
RUBY_CATCH
}
}
// ---------------------------------------------------------------------
+
template<typename Func_T, typename Ret_T>
Auto_Function_Wrapper<Func_T, Ret_T>::
Auto_Function_Wrapper(
Func func,
Data_Object<Exception_Handler> handler,
@@ -3309,10 +3598,17 @@
, arguments_(arguments)
{
}
template<typename Func_T, typename Ret_T>
+Auto_Function_Wrapper<Func_T, Ret_T>::
+~Auto_Function_Wrapper()
+{
+ if(arguments_) { delete arguments_; }
+}
+
+template<typename Func_T, typename Ret_T>
VALUE Auto_Function_Wrapper<Func_T, Ret_T>::
call()
{
Auto_Function_Wrapper<Func_T, Ret_T> * wrapper = 0;
try
@@ -3348,9 +3644,16 @@
: Wrapped_Function(RUBY_METHOD_FUNC(call), Num_Args)
, func_(func)
, handler_(handler ? handler : new Default_Exception_Handler)
, arguments_(arguments)
{
+}
+
+template<typename Func_T>
+Auto_Function_Wrapper<Func_T, void>::
+~Auto_Function_Wrapper()
+{
+ if(arguments_) { delete arguments_; }
}
template<typename Func_T>
VALUE Auto_Function_Wrapper<Func_T, void>::
call()