summaryrefslogtreecommitdiffstats
path: root/core/make_binders.py
diff options
context:
space:
mode:
Diffstat (limited to 'core/make_binders.py')
-rw-r--r--core/make_binders.py15
1 files changed, 13 insertions, 2 deletions
diff --git a/core/make_binders.py b/core/make_binders.py
index 93371dc0a3..1d55c92b89 100644
--- a/core/make_binders.py
+++ b/core/make_binders.py
@@ -48,7 +48,13 @@ public:
$ifnoret return Variant();$
}
-
+#ifdef PTRCAL_ENABLED
+ virtual void ptrcall(Object*p_object,const void** p_args,void *r_ret) {
+
+ T *instance=p_object->cast_to<T>();
+ $ifret PtrToArg<R>::encode( $ (instance->*method)($arg, PtrToArg<P@>::convert(p_args[@-1])$) $ifret ,r_ret)$ ;
+ }
+#endif
MethodBind$argc$$ifret R$$ifconst C$ () {
#ifdef DEBUG_METHODS_ENABLED
_set_const($ifconst true$$ifnoconst false$);
@@ -121,7 +127,12 @@ public:
$ifret return Variant(ret);$
$ifnoret return Variant();$
}
-
+#ifdef PTRCALL_ENABLED
+ virtual void ptrcall(Object*p_object,const void** p_args,void *r_ret) {
+ __UnexistingClass *instance = (__UnexistingClass*)p_object;
+ $ifret PtrToArg<R>::encode( $ (instance->*method)($arg, PtrToArg<P@>::convert(p_args[@-1])$) $ifret ,r_ret) $ ;
+ }
+#endif
MethodBind$argc$$ifret R$$ifconst C$ () {
#ifdef DEBUG_METHODS_ENABLED
_set_const($ifconst true$$ifnoconst false$);