Added additional token checks for the shader if..else.. statement. Fixes issue #2791.

This commit is contained in:
hurikhan 2015-11-22 13:49:58 +08:00
parent 265f7ba4e5
commit 49f4ec2b71

View File

@ -2340,19 +2340,27 @@ Error ShaderLanguage::parse_flow_if(Parser& parser,Node *p_parent,Node **r_state
parser.advance();
if (parser.get_token_type()!=TK_CURLY_BRACKET_OPEN) {
parser.set_error("Expected statement block after 'if()'");
return ERR_PARSE_ERROR;
}
Node *substatement=NULL;
err = parse_statement(parser,cf,&substatement);
if (err)
return err;
cf->statements.push_back(substatement);
if (parser.get_token_type()==TK_CF_ELSE) {
parser.advance();
if (parser.get_token_type()!=TK_CURLY_BRACKET_OPEN) {
parser.set_error("Expected statement block after 'else'");
return ERR_PARSE_ERROR;
}
substatement=NULL;
err = parse_statement(parser,cf,&substatement);
if (err)