From fb264b90b9ee19af6e28afbfd5a415440907326b Mon Sep 17 00:00:00 2001 From: "Wolfgang (Blub) Bumiller" Date: Sun, 11 Nov 2012 12:13:34 +0100 Subject: [PATCH] need to use ast_unref rather than ast_delete on the parsed array-size otherwise we end up deleting constants --- parser.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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);