1
0
mirror of https://github.com/godotengine/godot synced 2024-07-08 17:45:48 +00:00

Fix GDSCript inner classes be freed after compile

This commit is contained in:
geequlim 2019-06-02 19:07:46 +08:00
parent 449395716f
commit eed5967c02

View File

@ -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;
}