diff options
author | Pedro J. Estébanez <pedrojrulez@gmail.com> | 2021-08-14 17:56:09 +0200 |
---|---|---|
committer | Pedro J. Estébanez <pedrojrulez@gmail.com> | 2021-09-11 11:35:25 +0200 |
commit | 10c9c2ccd44b7d96e570f668deb2a8531a92bdc6 (patch) | |
tree | c50ba53bfa6f8f049a02c3c4ee152c4691ae6b22 /modules/gdscript/gdscript_cache.cpp | |
parent | 7c79e361f515b405910467118d37ce1ff8eb5872 (diff) | |
download | redot-engine-10c9c2ccd44b7d96e570f668deb2a8531a92bdc6.tar.gz |
Avoid crash after a parsing error in GDScript
Diffstat (limited to 'modules/gdscript/gdscript_cache.cpp')
-rw-r--r-- | modules/gdscript/gdscript_cache.cpp | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/modules/gdscript/gdscript_cache.cpp b/modules/gdscript/gdscript_cache.cpp index 07f50d14dc..8121053245 100644 --- a/modules/gdscript/gdscript_cache.cpp +++ b/modules/gdscript/gdscript_cache.cpp @@ -51,7 +51,9 @@ GDScriptParser *GDScriptParserRef::get_parser() const { Error GDScriptParserRef::raise_status(Status p_new_status) { ERR_FAIL_COND_V(parser == nullptr, ERR_INVALID_DATA); - Error result = OK; + if (result != OK) { + return result; + } while (p_new_status > status) { switch (status) { @@ -86,14 +88,6 @@ Error GDScriptParserRef::raise_status(Status p_new_status) { } } if (result != OK) { - if (parser != nullptr) { - memdelete(parser); - parser = nullptr; - } - if (analyzer != nullptr) { - memdelete(analyzer); - analyzer = nullptr; - } return result; } } |