From 0541c18a91d69c4301982b0c4bd2f0ab9f3d1294 Mon Sep 17 00:00:00 2001 From: Danila Fedorin Date: Wed, 21 Feb 2018 19:00:04 -0800 Subject: [PATCH] Fix bug causing the free function miss freeing a vector. --- src/parser.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/parser.c b/src/parser.c index abea2aa..b906384 100644 --- a/src/parser.c +++ b/src/parser.c @@ -149,6 +149,9 @@ libab_result _parse_if(struct parser_state* state, libab_tree** store_into) { if(_parser_is_type(state, TOKEN_KW_IF)) { result = _parser_construct_node_vec(state, state->current_match, store_into); + if(result == LIBAB_SUCCESS) { + (*store_into)->variant = IF; + } } if(result == LIBAB_SUCCESS) { @@ -172,7 +175,6 @@ libab_result _parse_if(struct parser_state* state, libab_tree** store_into) { } if(result == LIBAB_SUCCESS) { - (*store_into)->variant = IF; if(_parser_is_type(state, TOKEN_KW_ELSE)) { _parser_state_step(state); result = _parse_expression(state, &else_branch);