Преглед на файлове

check for cyclic inheritance when adding a global class

Patrick Wuttke преди 6 години
родител
ревизия
d8b36a452c
променени са 1 файла, в които са добавени 1 реда и са изтрити 0 реда
  1. 1 0
      core/script_language.cpp

+ 1 - 0
core/script_language.cpp

@@ -218,6 +218,7 @@ void ScriptServer::global_classes_clear() {
 }
 }
 
 
 void ScriptServer::add_global_class(const StringName &p_class, const StringName &p_base, const StringName &p_language, const String &p_path) {
 void ScriptServer::add_global_class(const StringName &p_class, const StringName &p_base, const StringName &p_language, const String &p_path) {
+	ERR_FAIL_COND_MSG(p_class == p_base || (global_classes.has(p_base) && get_global_class_native_base(p_base) == p_class), "Cyclic inheritance in script class.");
 	GlobalScriptClass g;
 	GlobalScriptClass g;
 	g.language = p_language;
 	g.language = p_language;
 	g.path = p_path;
 	g.path = p_path;