mirror of
https://github.com/DarkPlacesEngine/gmqcc.git
synced 2025-01-31 03:50:36 +00:00
Since function prototypes now don't cause the function to become a constant, we cannot check for a constant in [frame,think] notations anymore
This commit is contained in:
parent
0d64e555e2
commit
02cc86db25
1 changed files with 2 additions and 19 deletions
21
parser.c
21
parser.c
|
@ -2277,24 +2277,7 @@ nextvar:
|
|||
|
||||
varent.var = (ast_expression*)thinkfunc;
|
||||
varent.name = util_strdup(thinkfunc->name);
|
||||
if (thinkfunc->expression.vtype == TYPE_FUNCTION)
|
||||
{
|
||||
ast_function *func;
|
||||
|
||||
func = ast_function_new(parser_ctx(parser), thinkfunc->name, thinkfunc);
|
||||
if (!func) {
|
||||
ast_delete(thinkfunc);
|
||||
ast_unref(framenum);
|
||||
parseerror(parser, "failed to create function for implicit prototype for `%s`",
|
||||
thinkfunc->name);
|
||||
ast_value_delete(typevar);
|
||||
return false;
|
||||
}
|
||||
(void)!parser_t_functions_add(parser, func);
|
||||
(void)!parser_t_globals_add(parser, varent);
|
||||
}
|
||||
else
|
||||
(void)!parser_t_globals_add(parser, varent);
|
||||
(void)!parser_t_globals_add(parser, varent);
|
||||
nextthink = (ast_expression*)thinkfunc;
|
||||
|
||||
} else {
|
||||
|
@ -2307,7 +2290,7 @@ nextvar:
|
|||
}
|
||||
}
|
||||
|
||||
if (!ast_istype(nextthink, ast_value) || !( (ast_value*)nextthink )->isconst) {
|
||||
if (!ast_istype(nextthink, ast_value)) {
|
||||
ast_unref(nextthink);
|
||||
ast_unref(framenum);
|
||||
parseerror(parser, "think-function in [frame,think] notation must be a constant");
|
||||
|
|
Loading…
Reference in a new issue