Keep GDScriptAnalyzer alive for whole parse()
Analyzed data is allocated by Parser but kept as a reference in the cache which in turn is held by the Analyzer. If Analyzer goes away Parser is left with a tree of dangling references. Code is analogous to all other usages of Analyzer + Parser pair.
This commit is contained in:
parent
d759210f52
commit
2af4f7f762
1 changed files with 2 additions and 1 deletions
|
@ -844,8 +844,9 @@ Error ExtendGDScriptParser::parse(const String &p_code, const String &p_path) {
|
|||
lines = p_code.split("\n");
|
||||
|
||||
Error err = GDScriptParser::parse(p_code, p_path, false);
|
||||
GDScriptAnalyzer analyzer(this);
|
||||
|
||||
if (err == OK) {
|
||||
GDScriptAnalyzer analyzer(this);
|
||||
err = analyzer.analyze();
|
||||
}
|
||||
update_diagnostics();
|
||||
|
|
Loading…
Reference in a new issue