diff options
| author | Rémi Verschelde <remi@verschelde.fr> | 2021-08-10 16:42:31 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-08-10 16:42:31 +0200 |
| commit | 46beaacec3d18c0d5f1d744e2c63ca09f5152c85 (patch) | |
| tree | e9520a708f1a8f65a829547c281f1cbedf38cca8 /core/object/class_db.cpp | |
| parent | 50d5569ad49752803b980eca85590f5362b12409 (diff) | |
| parent | ee6e05ee68afc7841848382fbd538fdf7369b214 (diff) | |
| download | redot-engine-46beaacec3d18c0d5f1d744e2c63ca09f5152c85.tar.gz | |
Merge pull request #51017 from vnen/extension-fixes
Diffstat (limited to 'core/object/class_db.cpp')
| -rw-r--r-- | core/object/class_db.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/core/object/class_db.cpp b/core/object/class_db.cpp index c6ba39be94..c58fe7bc24 100644 --- a/core/object/class_db.cpp +++ b/core/object/class_db.cpp @@ -505,11 +505,12 @@ thread_local bool initializing_with_extension = false; thread_local ObjectNativeExtension *initializing_extension = nullptr; thread_local GDExtensionClassInstancePtr initializing_extension_instance = nullptr; -void ClassDB::instance_get_native_extension_data(ObjectNativeExtension **r_extension, GDExtensionClassInstancePtr *r_extension_instance) { +void ClassDB::instance_get_native_extension_data(ObjectNativeExtension **r_extension, GDExtensionClassInstancePtr *r_extension_instance, Object *p_base) { if (initializing_with_extension) { *r_extension = initializing_extension; *r_extension_instance = initializing_extension_instance; initializing_with_extension = false; + initializing_extension->set_object_instance(*r_extension_instance, p_base); } else { *r_extension = nullptr; *r_extension_instance = nullptr; @@ -1592,7 +1593,7 @@ void ClassDB::register_extension_class(ObjectNativeExtension *p_extension) { GLOBAL_LOCK_FUNCTION; ERR_FAIL_COND_MSG(classes.has(p_extension->class_name), "Class already registered: " + String(p_extension->class_name)); - ERR_FAIL_COND_MSG(classes.has(p_extension->parent_class_name), "Parent class name for extension class not found: " + String(p_extension->parent_class_name)); + ERR_FAIL_COND_MSG(!classes.has(p_extension->parent_class_name), "Parent class name for extension class not found: " + String(p_extension->parent_class_name)); ClassInfo *parent = classes.getptr(p_extension->parent_class_name); @@ -1604,6 +1605,7 @@ void ClassDB::register_extension_class(ObjectNativeExtension *p_extension) { c.inherits = parent->name; c.class_ptr = parent->class_ptr; c.inherits_ptr = parent; + c.exposed = true; classes[p_extension->class_name] = c; } |
