Avoid crash after a parsing error in GDScript

This commit is contained in:
Pedro J. Estébanez 2021-08-14 17:56:09 +02:00
parent 7c79e361f5
commit 10c9c2ccd4
2 changed files with 4 additions and 9 deletions

View file

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

View file

@ -54,6 +54,7 @@ private:
GDScriptParser *parser = nullptr;
GDScriptAnalyzer *analyzer = nullptr;
Status status = EMPTY;
Error result = OK;
String path;
friend class GDScriptCache;