Fix shader crash if non-boolean expression inserted into "if"

This commit is contained in:
Yuri Roubinsky 2019-10-28 08:35:33 +03:00
parent 816341af25
commit ef6161532d

View file

@ -4143,6 +4143,11 @@ Error ShaderLanguage::_parse_block(BlockNode *p_block, const Map<StringName, Bui
if (!n) if (!n)
return ERR_PARSE_ERROR; return ERR_PARSE_ERROR;
if (n->get_datatype() != TYPE_BOOL) {
_set_error("Expected boolean expression");
return ERR_PARSE_ERROR;
}
tk = _get_token(); tk = _get_token();
if (tk.type != TK_PARENTHESIS_CLOSE) { if (tk.type != TK_PARENTHESIS_CLOSE) {
_set_error("Expected ')' after expression"); _set_error("Expected ')' after expression");