From: Wolfgang (Blub) Bumiller Date: Mon, 20 Aug 2012 16:27:27 +0000 (+0200) Subject: Since function prototypes now don't cause the function to become a constant, we canno... X-Git-Tag: 0.1-rc1~129 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=02cc86db25e1cc2fade85d711061f3bad79bdc7b;p=xonotic%2Fgmqcc.git Since function prototypes now don't cause the function to become a constant, we cannot check for a constant in [frame,think] notations anymore --- diff --git a/parser.c b/parser.c index 2541548..b0448bf 100644 --- a/parser.c +++ b/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");