Skip to content

Commit

Permalink
Merge pull request #80081 from clayjohn/revert-dead-error
Browse files Browse the repository at this point in the history
Revert "Let user know about dead instances in deferred calls"
  • Loading branch information
YuriSizov authored Jul 31, 2023
2 parents 262d1ea + fcc6c6a commit 3fa8fad
Showing 1 changed file with 19 additions and 32 deletions.
51 changes: 19 additions & 32 deletions core/object/message_queue.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,6 @@
#include "core/object/class_db.h"
#include "core/object/script_language.h"

#ifdef DEBUG_ENABLED
#include "core/config/engine.h"
#endif

#ifdef DEV_ENABLED
// Includes sanity checks to ensure that a queue set as a thread singleton override
// is only ever called from the thread it was set for.
Expand Down Expand Up @@ -320,34 +316,25 @@ Error CallQueue::flush() {
Object *target = message->callable.get_object();

UNLOCK_MUTEX;
#ifdef DEBUG_ENABLED
if (!message->callable.is_valid()) {
// The editor would cause many of these.
if (!Engine::get_singleton()->is_editor_hint()) {
ERR_PRINT("Trying to execute a deferred call/notification/set on a previously freed instance. Consider using queue_free() instead of free().");
}
} else
#endif
{
switch (message->type & FLAG_MASK) {
case TYPE_CALL: {
if (target || (message->type & FLAG_NULL_IS_OK)) {
Variant *args = (Variant *)(message + 1);
_call_function(message->callable, args, message->args, message->type & FLAG_SHOW_ERROR);
}
} break;
case TYPE_NOTIFICATION: {
if (target) {
target->notification(message->notification);
}
} break;
case TYPE_SET: {
if (target) {
Variant *arg = (Variant *)(message + 1);
target->set(message->callable.get_method(), *arg);
}
} break;
}

switch (message->type & FLAG_MASK) {
case TYPE_CALL: {
if (target || (message->type & FLAG_NULL_IS_OK)) {
Variant *args = (Variant *)(message + 1);
_call_function(message->callable, args, message->args, message->type & FLAG_SHOW_ERROR);
}
} break;
case TYPE_NOTIFICATION: {
if (target) {
target->notification(message->notification);
}
} break;
case TYPE_SET: {
if (target) {
Variant *arg = (Variant *)(message + 1);
target->set(message->callable.get_method(), *arg);
}
} break;
}

if ((message->type & FLAG_MASK) != TYPE_NOTIFICATION) {
Expand Down

0 comments on commit 3fa8fad

Please sign in to comment.