Core: Always enable ptrcall, remove PTRCALL_ENABLED define

ptrcall is now also used to optimize calls in GDScript, on top of the existing
use by the GDNative and Mono modules.

It no longer makes sense to make it optional.
This commit is contained in:
Rémi Verschelde
2020-11-25 14:08:17 +01:00
parent 8c713fa9bf
commit d76806d322
11 changed files with 36 additions and 274 deletions

View File

@@ -123,10 +123,7 @@ public:
_FORCE_INLINE_ int get_argument_count() const { return argument_count; };
virtual Variant call(Object *p_object, const Variant **p_args, int p_arg_count, Callable::CallError &r_error) = 0;
#ifdef PTRCALL_ENABLED
virtual void ptrcall(Object *p_object, const void **p_args, void *r_ret) = 0;
#endif
StringName get_name() const;
void set_name(const StringName &p_name);
@@ -205,11 +202,9 @@ public:
#endif
}
#ifdef PTRCALL_ENABLED
virtual void ptrcall(Object *p_object, const void **p_args, void *r_ret) {
ERR_FAIL(); //can't call
} //todo
#endif
ERR_FAIL(); // Can't call.
}
void set_method(NativeCall p_method) { call_method = p_method; }
virtual bool is_const() const { return false; }
@@ -289,7 +284,6 @@ public:
return Variant();
}
#ifdef PTRCALL_ENABLED
virtual void ptrcall(Object *p_object, const void **p_args, void *r_ret) {
#ifdef TYPED_METHOD_BIND
call_with_ptr_args<T, P...>(static_cast<T *>(p_object), method, p_args);
@@ -297,7 +291,6 @@ public:
call_with_ptr_args<MB_T, P...>((MB_T *)(p_object), method, p_args);
#endif
}
#endif
MethodBindT(void (MB_T::*p_method)(P...)) {
method = p_method;
@@ -370,7 +363,6 @@ public:
return Variant();
}
#ifdef PTRCALL_ENABLED
virtual void ptrcall(Object *p_object, const void **p_args, void *r_ret) {
#ifdef TYPED_METHOD_BIND
call_with_ptr_argsc<T, P...>(static_cast<T *>(p_object), method, p_args);
@@ -378,7 +370,6 @@ public:
call_with_ptr_argsc<MB_T, P...>((MB_T *)(p_object), method, p_args);
#endif
}
#endif
MethodBindTC(void (MB_T::*p_method)(P...) const) {
method = p_method;
@@ -462,7 +453,6 @@ public:
return ret;
}
#ifdef PTRCALL_ENABLED
virtual void ptrcall(Object *p_object, const void **p_args, void *r_ret) {
#ifdef TYPED_METHOD_BIND
call_with_ptr_args_ret<T, R, P...>(static_cast<T *>(p_object), method, p_args, r_ret);
@@ -470,7 +460,6 @@ public:
call_with_ptr_args_ret<MB_T, R, P...>((MB_T *)(p_object), method, p_args, r_ret);
#endif
}
#endif
MethodBindTR(R (MB_T::*p_method)(P...)) {
method = p_method;
@@ -555,7 +544,6 @@ public:
return ret;
}
#ifdef PTRCALL_ENABLED
virtual void ptrcall(Object *p_object, const void **p_args, void *r_ret) {
#ifdef TYPED_METHOD_BIND
call_with_ptr_args_retc<T, R, P...>(static_cast<T *>(p_object), method, p_args, r_ret);
@@ -563,7 +551,6 @@ public:
call_with_ptr_args_retc<MB_T, R, P...>((MB_T *)(p_object), method, p_args, r_ret);
#endif
}
#endif
MethodBindTRC(R (MB_T::*p_method)(P...) const) {
method = p_method;