Object: Add missing lock

This commit is contained in:
Pedro J. Estébanez 2024-04-18 17:42:55 +02:00
parent 755c7494c2
commit b834037841

View file

@ -2307,9 +2307,9 @@ void ObjectDB::setup() {
} }
void ObjectDB::cleanup() { void ObjectDB::cleanup() {
if (slot_count > 0) { spin_lock.lock();
spin_lock.lock();
if (slot_count > 0) {
WARN_PRINT("ObjectDB instances leaked at exit (run with --verbose for details)."); WARN_PRINT("ObjectDB instances leaked at exit (run with --verbose for details).");
if (OS::get_singleton()->is_stdout_verbose()) { if (OS::get_singleton()->is_stdout_verbose()) {
// Ensure calling the native classes because if a leaked instance has a script // Ensure calling the native classes because if a leaked instance has a script
@ -2340,10 +2340,11 @@ void ObjectDB::cleanup() {
} }
print_line("Hint: Leaked instances typically happen when nodes are removed from the scene tree (with `remove_child()`) but not freed (with `free()` or `queue_free()`)."); print_line("Hint: Leaked instances typically happen when nodes are removed from the scene tree (with `remove_child()`) but not freed (with `free()` or `queue_free()`).");
} }
spin_lock.unlock();
} }
if (object_slots) { if (object_slots) {
memfree(object_slots); memfree(object_slots);
} }
spin_lock.unlock();
} }