diff options
author | stmSi <stm1998sithumyo@gmail.com> | 2022-12-16 04:45:53 +0630 |
---|---|---|
committer | stmSi <stm1998sithumyo@gmail.com> | 2022-12-16 04:45:53 +0630 |
commit | 2a341a632187343e630f5671e1b9d71776913aeb (patch) | |
tree | a8176fe892a21f56c0851013e824e9637e0933b8 /modules/gdscript/gdscript_analyzer.cpp | |
parent | 15631e24f740872c2be7cf81dd252c38b4aa174e (diff) | |
download | redot-engine-2a341a632187343e630f5671e1b9d71776913aeb.tar.gz |
Fixed GDScript crashed when two consecutive unary operators are analysed
Diffstat (limited to 'modules/gdscript/gdscript_analyzer.cpp')
-rw-r--r-- | modules/gdscript/gdscript_analyzer.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/modules/gdscript/gdscript_analyzer.cpp b/modules/gdscript/gdscript_analyzer.cpp index 9ec53b2b66..4da346b1df 100644 --- a/modules/gdscript/gdscript_analyzer.cpp +++ b/modules/gdscript/gdscript_analyzer.cpp @@ -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()); |