summaryrefslogtreecommitdiff
path: root/core/object/object.cpp
diff options
context:
space:
mode:
authorRémi Verschelde <remi@verschelde.fr>2022-04-11 14:12:18 +0200
committerGitHub <noreply@github.com>2022-04-11 14:12:18 +0200
commit5613ac37d658820fd0e4c3162f24a3b68414d3f9 (patch)
tree533d5ed29331e94be8f6978fd98137844376d55b /core/object/object.cpp
parent2ec68599a45231767bb970e7bf06a3bf7ed5fc91 (diff)
parent9381acb6a42da653cb6dfd9e610dfccead11aa98 (diff)
Merge pull request #59440 from bruvzg/fd_ref_counted
Diffstat (limited to 'core/object/object.cpp')
-rw-r--r--core/object/object.cpp13
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) {