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");
|
lines = p_code.split("\n");
|
||||||
|
|
||||||
Error err = GDScriptParser::parse(p_code, p_path, false);
|
Error err = GDScriptParser::parse(p_code, p_path, false);
|
||||||
|
GDScriptAnalyzer analyzer(this);
|
||||||
|
|
||||||
if (err == OK) {
|
if (err == OK) {
|
||||||
GDScriptAnalyzer analyzer(this);
|
|
||||||
err = analyzer.analyze();
|
err = analyzer.analyze();
|
||||||
}
|
}
|
||||||
update_diagnostics();
|
update_diagnostics();
|
||||||
|
|
Loading…
Reference in a new issue