summaryrefslogtreecommitdiffstats
path: root/core/object
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2024-01-18 16:35:14 +0100
committerRémi Verschelde <rverschelde@gmail.com>2024-01-18 16:35:14 +0100
commitbaf87e2717d2be4e2c8a43ff8d3e5f789125935f (patch)
tree5b5113d42b516b137993c64b08a937a9bfbf1f64 /core/object
parent33f3511241b0ae90ee995879bf2c7eec33221327 (diff)
parentb4e08eb752cca0135208ed0729479e1d9c87773d (diff)
downloadredot-engine-baf87e2717d2be4e2c8a43ff8d3e5f789125935f.tar.gz
Merge pull request #87294 from vnen/allow-free-callable
Allow `free()` to be used as Callable
Diffstat (limited to 'core/object')
-rw-r--r--core/object/class_db.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/core/object/class_db.cpp b/core/object/class_db.cpp
index bf1bd0de93..45fbb19f88 100644
--- a/core/object/class_db.cpp
+++ b/core/object/class_db.cpp
@@ -31,6 +31,7 @@
#include "class_db.h"
#include "core/config/engine.h"
+#include "core/core_string_names.h"
#include "core/io/resource_loader.h"
#include "core/object/script_language.h"
#include "core/os/mutex.h"
@@ -1299,6 +1300,12 @@ bool ClassDB::get_property(Object *p_object, const StringName &p_property, Varia
check = check->inherits_ptr;
}
+ // The "free()" method is special, so we assume it exists and return a Callable.
+ if (p_property == CoreStringNames::get_singleton()->_free) {
+ r_value = Callable(p_object, p_property);
+ return true;
+ }
+
return false;
}