From: Wolfgang (Blub) Bumiller Date: Sun, 11 Nov 2012 11:13:34 +0000 (+0100) Subject: need to use ast_unref rather than ast_delete on the parsed array-size otherwise we... X-Git-Tag: 0.1~19^2~39 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=fb264b90b9ee19af6e28afbfd5a415440907326b;p=xonotic%2Fgmqcc.git need to use ast_unref rather than ast_delete on the parsed array-size otherwise we end up deleting constants --- diff --git a/parser.c b/parser.c index f1466a1..2cbf576 100644 --- a/parser.c +++ b/parser.c @@ -2284,7 +2284,7 @@ static ast_value *parse_arraysize(parser_t *parser, ast_value *var) if (!cexp || !ast_istype(cexp, ast_value)) { if (cexp) - ast_delete(cexp); + ast_unref(cexp); ast_delete(var); parseerror(parser, "expected array-size as constant positive integer"); return NULL; @@ -2300,12 +2300,12 @@ static ast_value *parse_arraysize(parser_t *parser, ast_value *var) else if (cval->expression.vtype == TYPE_FLOAT) tmp->expression.count = cval->constval.vfloat; else { - ast_delete(cexp); + ast_unref(cexp); ast_delete(var); parseerror(parser, "array-size must be a positive integer constant"); return NULL; } - ast_delete(cexp); + ast_unref(cexp); if (parser->tok != ']') { ast_delete(var);