Преглед изворни кода

Fix GDSCript inner classes be freed after compile

geequlim пре 6 година
родитељ
комит
eed5967c02
1 измењених фајлова са 4 додато и 4 уклоњено
  1. 4 4
      modules/gdscript/gdscript_compiler.cpp

+ 4 - 4
modules/gdscript/gdscript_compiler.cpp

@@ -1977,12 +1977,12 @@ Error GDScriptCompiler::_parse_class_level(GDScript *p_script, const GDScriptPar
 
 	for (int i = 0; i < p_class->subclasses.size(); i++) {
 		StringName name = p_class->subclasses[i]->name;
-
-		GDScript *subclass = p_script->subclasses[name].ptr();
+		Ref<GDScript> &subclass = p_script->subclasses[name];
+		GDScript *subclass_ptr = subclass.ptr();
 
 		// Subclass might still be parsing, just skip it
-		if (!parsed_classes.has(subclass) && !parsing_classes.has(subclass)) {
-			Error err = _parse_class_level(subclass, p_class->subclasses[i], p_keep_state);
+		if (!parsed_classes.has(subclass_ptr) && !parsing_classes.has(subclass_ptr)) {
+			Error err = _parse_class_level(subclass_ptr, p_class->subclasses[i], p_keep_state);
 			if (err)
 				return err;
 		}