From dc9702df4c598b186279fa8ec27dbd095a144c42 Mon Sep 17 00:00:00 2001 From: Danila Fedorin Date: Tue, 12 Jun 2018 02:09:51 -0700 Subject: [PATCH] Fix memory allocation / free bugs. --- src/parser.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/parser.c b/src/parser.c index 08b0227..cd46a14 100644 --- a/src/parser.c +++ b/src/parser.c @@ -41,8 +41,7 @@ void _parser_extract_token_buffer(struct parser_state* state, char* buffer, } int _parser_foreach_free_tree(void* data, va_list args) { - libab_tree_free(data); - free(data); + libab_tree_free_recursive(data); return 0; } @@ -1118,8 +1117,9 @@ libab_result _parse_expression(struct parser_state* state, result = LIBAB_UNEXPECTED; } - ll_free(&op_stack); + ll_foreach(&op_stack, NULL, compare_always, _parser_foreach_free_tree); ll_foreach(&out_stack, NULL, compare_always, _parser_foreach_free_tree); + ll_free(&op_stack); ll_free(&out_stack); return result;