1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-06 12:20:30 +00:00

Object: Let debug lock handle callee destruction within call chain gracefully

Co-authored-by: lawnjelly <lawnjelly@gmail.com>
This commit is contained in:
Pedro J. Estébanez
2024-09-11 14:54:09 +02:00
parent 97ef3c8372
commit 10e2318bde

View File

@@ -45,14 +45,17 @@
#ifdef DEBUG_ENABLED #ifdef DEBUG_ENABLED
struct _ObjectDebugLock { struct _ObjectDebugLock {
Object *obj; ObjectID obj_id;
_ObjectDebugLock(Object *p_obj) { _ObjectDebugLock(Object *p_obj) {
obj = p_obj; obj_id = p_obj->get_instance_id();
obj->_lock_index.ref(); p_obj->_lock_index.ref();
} }
~_ObjectDebugLock() { ~_ObjectDebugLock() {
obj->_lock_index.unref(); Object *obj_ptr = ObjectDB::get_instance(obj_id);
if (likely(obj_ptr)) {
obj_ptr->_lock_index.unref();
}
} }
}; };