diff options
author | Rémi Verschelde <remi@verschelde.fr> | 2022-04-11 14:12:18 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-11 14:12:18 +0200 |
commit | 5613ac37d658820fd0e4c3162f24a3b68414d3f9 (patch) | |
tree | 533d5ed29331e94be8f6978fd98137844376d55b /core/object/object.cpp | |
parent | 2ec68599a45231767bb970e7bf06a3bf7ed5fc91 (diff) | |
parent | 9381acb6a42da653cb6dfd9e610dfccead11aa98 (diff) |
Merge pull request #59440 from bruvzg/fd_ref_counted
Diffstat (limited to 'core/object/object.cpp')
-rw-r--r-- | core/object/object.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/core/object/object.cpp b/core/object/object.cpp index c2cd42ff91..897b5d18de 100644 --- a/core/object/object.cpp +++ b/core/object/object.cpp @@ -1848,6 +1848,13 @@ Object::Object() { _construct_object(false); } +void Object::detach_from_objectdb() { + if (_instance_id != ObjectID()) { + ObjectDB::remove_instance(this); + _instance_id = ObjectID(); + } +} + Object::~Object() { if (script_instance) { memdelete(script_instance); @@ -1887,8 +1894,10 @@ Object::~Object() { c.signal.get_object()->_disconnect(c.signal.get_name(), c.callable, true); } - ObjectDB::remove_instance(this); - _instance_id = ObjectID(); + if (_instance_id != ObjectID()) { + ObjectDB::remove_instance(this); + _instance_id = ObjectID(); + } _predelete_ok = 2; if (_instance_bindings != nullptr) { |