You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-04 12:00:25 +00:00
Avoid crash after a parsing error in GDScript
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -54,6 +54,7 @@ private:
|
||||
GDScriptParser *parser = nullptr;
|
||||
GDScriptAnalyzer *analyzer = nullptr;
|
||||
Status status = EMPTY;
|
||||
Error result = OK;
|
||||
String path;
|
||||
|
||||
friend class GDScriptCache;
|
||||
|
||||
Reference in New Issue
Block a user