Merge pull request #55931 from groud/avoid_crash_gdscript_analyzer
This commit is contained in:
commit
4601809c5a
@ -484,7 +484,7 @@ GDScriptParser::DataType GDScriptAnalyzer::resolve_datatype(GDScriptParser::Type
|
|||||||
result = parser->head->get_datatype();
|
result = parser->head->get_datatype();
|
||||||
} else {
|
} else {
|
||||||
Ref<GDScriptParserRef> ref = get_parser_for(ScriptServer::get_global_class_path(first));
|
Ref<GDScriptParserRef> ref = get_parser_for(ScriptServer::get_global_class_path(first));
|
||||||
if (ref->raise_status(GDScriptParserRef::INTERFACE_SOLVED) != OK) {
|
if (!ref.is_valid() || ref->raise_status(GDScriptParserRef::INTERFACE_SOLVED) != OK) {
|
||||||
push_error(vformat(R"(Could not parse global class "%s" from "%s".)", first, ScriptServer::get_global_class_path(first)), p_type);
|
push_error(vformat(R"(Could not parse global class "%s" from "%s".)", first, ScriptServer::get_global_class_path(first)), p_type);
|
||||||
return GDScriptParser::DataType();
|
return GDScriptParser::DataType();
|
||||||
}
|
}
|
||||||
@ -3956,8 +3956,10 @@ Ref<GDScriptParserRef> GDScriptAnalyzer::get_parser_for(const String &p_path) {
|
|||||||
} else {
|
} else {
|
||||||
Error err = OK;
|
Error err = OK;
|
||||||
ref = GDScriptCache::get_parser(p_path, GDScriptParserRef::EMPTY, err, parser->script_path);
|
ref = GDScriptCache::get_parser(p_path, GDScriptParserRef::EMPTY, err, parser->script_path);
|
||||||
|
if (ref.is_valid()) {
|
||||||
depended_parsers[p_path] = ref;
|
depended_parsers[p_path] = ref;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return ref;
|
return ref;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user