Bläddra i källkod

Fix GDScript placeholder fallback

Ignacio Etcheverry 6 år sedan
förälder
incheckning
7c4c646749
2 ändrade filer med 9 tillägg och 1 borttagningar
  1. 2 1
      core/script_language.cpp
  2. 7 0
      modules/gdscript/gdscript.cpp

+ 2 - 1
core/script_language.cpp

@@ -563,7 +563,8 @@ Variant PlaceHolderScriptInstance::property_get_fallback(const StringName &p_nam
 PlaceHolderScriptInstance::PlaceHolderScriptInstance(ScriptLanguage *p_language, Ref<Script> p_script, Object *p_owner) :
 		owner(p_owner),
 		language(p_language),
-		script(p_script) {
+		script(p_script),
+		build_failed(false) {
 }
 
 PlaceHolderScriptInstance::~PlaceHolderScriptInstance() {

+ 7 - 0
modules/gdscript/gdscript.cpp

@@ -469,8 +469,15 @@ bool GDScript::_update_exports() {
 			for (Set<PlaceHolderScriptInstance *>::Element *E = placeholders.front(); E; E = E->next()) {
 				E->get()->set_build_failed(true);
 			}
+			return false;
 		}
 	} else {
+		if (!valid) {
+			for (Set<PlaceHolderScriptInstance *>::Element *E = placeholders.front(); E; E = E->next()) {
+				E->get()->set_build_failed(true);
+			}
+			return false;
+		}
 	}
 
 	if (base_cache.is_valid()) {