Added additional token checks for the shader if..else.. statement. Fixes issue #2791.
This commit is contained in:
parent
265f7ba4e5
commit
49f4ec2b71
@ -2340,19 +2340,27 @@ Error ShaderLanguage::parse_flow_if(Parser& parser,Node *p_parent,Node **r_state
|
|||||||
|
|
||||||
parser.advance();
|
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;
|
Node *substatement=NULL;
|
||||||
err = parse_statement(parser,cf,&substatement);
|
err = parse_statement(parser,cf,&substatement);
|
||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
|
|
||||||
cf->statements.push_back(substatement);
|
cf->statements.push_back(substatement);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (parser.get_token_type()==TK_CF_ELSE) {
|
if (parser.get_token_type()==TK_CF_ELSE) {
|
||||||
|
|
||||||
parser.advance();
|
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;
|
substatement=NULL;
|
||||||
err = parse_statement(parser,cf,&substatement);
|
err = parse_statement(parser,cf,&substatement);
|
||||||
if (err)
|
if (err)
|
||||||
|
Loading…
Reference in New Issue
Block a user