diff options
| author | Juan Linietsky | 2016-06-22 23:12:20 -0300 |
|---|---|---|
| committer | Juan Linietsky | 2016-06-22 23:13:41 -0300 |
| commit | d6225b1e0004c57cc50452ddb5d512fd6556a523 (patch) | |
| tree | eeb6169dcc735c6b66052581b81bb5a71b466509 /core/make_binders.py | |
| parent | 842e7bfc2f81cda73fd9f16a1ade323a1a5d0292 (diff) | |
| download | godot-d6225b1e0004c57cc50452ddb5d512fd6556a523.tar.gz godot-d6225b1e0004c57cc50452ddb5d512fd6556a523.tar.zst godot-d6225b1e0004c57cc50452ddb5d512fd6556a523.zip | |
Diffstat (limited to 'core/make_binders.py')
| -rw-r--r-- | core/make_binders.py | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/core/make_binders.py b/core/make_binders.py index 93371dc0a..1d55c92b8 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$); |
