Fixed method not found error when connecting with signal that fires in editor

Fixed method not found error when connecting with signal that fires in editor.

This is a  better solution to the problem than #22033. As discussed on IRC

This properly fixes #13070 then.
This commit is contained in:
DualMatrix 2018-09-21 00:05:39 +02:00
parent 561a7772c6
commit 992a5892f1
1 changed files with 4 additions and 1 deletions

View File

@ -1254,7 +1254,10 @@ Error Object::emit_signal(const StringName &p_name, const Variant **p_args, int
target->call(c.method, args, argc, ce); target->call(c.method, args, argc, ce);
if (ce.error != Variant::CallError::CALL_OK) { if (ce.error != Variant::CallError::CALL_OK) {
#ifdef DEBUG_ENABLED
if (c.flags & CONNECT_PERSIST && Engine::get_singleton()->is_editor_hint() && (script.is_null() || !Ref<Script>(script)->is_tool()))
continue;
#endif
if (ce.error == Variant::CallError::CALL_ERROR_INVALID_METHOD && !ClassDB::class_exists(target->get_class_name())) { if (ce.error == Variant::CallError::CALL_ERROR_INVALID_METHOD && !ClassDB::class_exists(target->get_class_name())) {
//most likely object is not initialized yet, do not throw error. //most likely object is not initialized yet, do not throw error.
} else { } else {