summaryrefslogtreecommitdiffstats
path: root/core/variant/variant.cpp
diff options
context:
space:
mode:
authorreduz <reduzio@gmail.com>2020-11-11 13:16:08 -0300
committerreduz <reduzio@gmail.com>2020-11-11 16:36:36 -0300
commit635d33dc6cb2226135fadeca3a2082a3c24c3757 (patch)
treedb003f23139e8928c97e9033571a43f76a7ec47a /core/variant/variant.cpp
parentfb2151089cea5da6c2293894f9686db6d50fbf92 (diff)
downloadredot-engine-635d33dc6cb2226135fadeca3a2082a3c24c3757.tar.gz
Refactor variant built-in methods yet again.
* Using C-style function pointers now, InternalMethod is gone. * This ensures much better performance in typed code. * Renamed builtin_funcs to utility_funcs, to avoid naming confusion
Diffstat (limited to 'core/variant/variant.cpp')
-rw-r--r--core/variant/variant.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/core/variant/variant.cpp b/core/variant/variant.cpp
index 055f61cf92..741d05c139 100644
--- a/core/variant/variant.cpp
+++ b/core/variant/variant.cpp
@@ -3401,7 +3401,8 @@ Variant Variant::call(const StringName &p_method, VARIANT_ARG_DECLARE) {
Callable::CallError error;
- Variant ret = call(p_method, argptr, argc, error);
+ Variant ret;
+ call(p_method, argptr, argc, ret, error);
switch (error.error) {
case Callable::CallError::CALL_ERROR_INVALID_ARGUMENT: {
@@ -3549,12 +3550,12 @@ void Variant::register_types() {
_register_variant_methods();
_register_variant_setters_getters();
_register_variant_constructors();
- _register_variant_builtin_funcs();
+ _register_variant_utility_functions();
}
void Variant::unregister_types() {
_unregister_variant_operators();
_unregister_variant_methods();
_unregister_variant_setters_getters();
_unregister_variant_constructors();
- _unregister_variant_builtin_funcs();
+ _unregister_variant_utility_functions();
}