summaryrefslogtreecommitdiffstats
path: root/modules/gdscript/gdscript_cache.cpp
diff options
context:
space:
mode:
authorPedro J. Estébanez <pedrojrulez@gmail.com>2021-08-14 17:56:09 +0200
committerPedro J. Estébanez <pedrojrulez@gmail.com>2021-09-11 11:35:25 +0200
commit10c9c2ccd44b7d96e570f668deb2a8531a92bdc6 (patch)
treec50ba53bfa6f8f049a02c3c4ee152c4691ae6b22 /modules/gdscript/gdscript_cache.cpp
parent7c79e361f515b405910467118d37ce1ff8eb5872 (diff)
downloadredot-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.cpp12
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;
}
}