Merge pull request #70126 from stmSi/fixed-gdscript-unary-unary-crash

Fixed GDScript crashed when two consecutive unary operators are analyzed/(script is saved).
This commit is contained in:
Rémi Verschelde 2022-12-15 23:55:49 +01:00
commit c4b4e69cd9
No known key found for this signature in database
GPG Key ID: C3336907360768E1

View File

@ -3875,7 +3875,6 @@ void GDScriptAnalyzer::reduce_ternary_op(GDScriptParser::TernaryOpNode *p_ternar
void GDScriptAnalyzer::reduce_unary_op(GDScriptParser::UnaryOpNode *p_unary_op) {
reduce_expression(p_unary_op->operand);
GDScriptParser::DataType operand_type = p_unary_op->operand->get_datatype();
GDScriptParser::DataType result;
if (p_unary_op->operand == nullptr) {
@ -3884,6 +3883,8 @@ void GDScriptAnalyzer::reduce_unary_op(GDScriptParser::UnaryOpNode *p_unary_op)
return;
}
GDScriptParser::DataType operand_type = p_unary_op->operand->get_datatype();
if (p_unary_op->operand->is_constant) {
p_unary_op->is_constant = true;
p_unary_op->reduced_value = Variant::evaluate(p_unary_op->variant_op, p_unary_op->operand->reduced_value, Variant());