aboutsummaryrefslogtreecommitdiff
path: root/core/object.cpp
diff options
context:
space:
mode:
authorAndreas Haas2016-09-25 19:21:21 +0200
committerRémi Verschelde2016-10-09 17:22:08 +0200
commit5adb75c2e71780d5b53cec06af33aee3dd34d83a (patch)
tree92805ee144e1ec00ea332f21bdbd30fb5cca4206 /core/object.cpp
parenta827734e033ccc9114c03d16813bd2e88186dcf1 (diff)
downloadgodot-5adb75c2e71780d5b53cec06af33aee3dd34d83a.tar.gz
godot-5adb75c2e71780d5b53cec06af33aee3dd34d83a.tar.zst
godot-5adb75c2e71780d5b53cec06af33aee3dd34d83a.zip
Throw error when trying to emit a non-existing signal.
closes #6017 (cherry picked from commit 276087e92dd707d990565a373ab9f51a3a52ef2d)
Diffstat (limited to 'core/object.cpp')
-rw-r--r--core/object.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/core/object.cpp b/core/object.cpp
index dc3d53192..68b3f700c 100644
--- a/core/object.cpp
+++ b/core/object.cpp
@@ -1152,6 +1152,15 @@ void Object::emit_signal(const StringName& p_name,const Variant** p_args,int p_a
Signal *s = signal_map.getptr(p_name);
if (!s) {
+#ifdef DEBUG_ENABLED
+ bool signal_is_valid = ObjectTypeDB::has_signal(get_type_name(),p_name);
+ //check in script
+ if (!signal_is_valid && !script.is_null() && !Ref<Script>(script)->has_script_signal(p_name)) {
+ ERR_EXPLAIN("Can't emit non-existing signal " + String("\"")+p_name+"\".");
+ ERR_FAIL();
+ }
+#endif
+ //not connected? just return
return;
}