Browse Source

GDScript cache crashfix.

K. S. Ernest (iFire) Lee 3 years ago
parent
commit
b69b526b7c
1 changed files with 4 additions and 1 deletions
  1. 4 1
      modules/gdscript/gdscript_cache.cpp

+ 4 - 1
modules/gdscript/gdscript_cache.cpp

@@ -122,6 +122,10 @@ Ref<GDScriptParserRef> GDScriptCache::get_parser(const String &p_path, GDScriptP
 	}
 	}
 	if (singleton->parser_map.has(p_path)) {
 	if (singleton->parser_map.has(p_path)) {
 		ref = Ref<GDScriptParserRef>(singleton->parser_map[p_path]);
 		ref = Ref<GDScriptParserRef>(singleton->parser_map[p_path]);
+		if (ref.is_null()) {
+			r_error = ERR_INVALID_DATA;
+			return ref;
+		}
 	} else {
 	} else {
 		if (!FileAccess::exists(p_path)) {
 		if (!FileAccess::exists(p_path)) {
 			r_error = ERR_FILE_NOT_FOUND;
 			r_error = ERR_FILE_NOT_FOUND;
@@ -133,7 +137,6 @@ Ref<GDScriptParserRef> GDScriptCache::get_parser(const String &p_path, GDScriptP
 		ref->path = p_path;
 		ref->path = p_path;
 		singleton->parser_map[p_path] = ref.ptr();
 		singleton->parser_map[p_path] = ref.ptr();
 	}
 	}
-
 	r_error = ref->raise_status(p_status);
 	r_error = ref->raise_status(p_status);
 
 
 	return ref;
 	return ref;