From 02cc86db25e1cc2fade85d711061f3bad79bdc7b Mon Sep 17 00:00:00 2001 From: "Wolfgang (Blub) Bumiller" Date: Mon, 20 Aug 2012 18:27:27 +0200 Subject: [PATCH] Since function prototypes now don't cause the function to become a constant, we cannot check for a constant in [frame,think] notations anymore --- parser.c | 21 ++------------------- 1 file changed, 2 insertions(+), 19 deletions(-) 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"); -- 2.39.2