diff options
author | Carlos Maniero <carlos@maniero.me> | 2023-05-02 23:45:57 -0300 |
---|---|---|
committer | Johnny Richard <johnny@johnnyrichard.com> | 2023-05-03 23:01:24 +0200 |
commit | 7aebc787c5529997e422a054398ed739ca4cddfe (patch) | |
tree | dea448248b789675245925c8f7c5318839de1aeb /src/parser.c | |
parent | 0b0ce0d1735b4358691fb1d4a85b550d45ae9d48 (diff) |
parser: Fixes block parser memory leak
When a error occurs during a block parser the vector that stores the
nodes had been destroyed but it's nodes don't. This commit fixes this by
replacing the %vector_destroy% with %ast_node_destroy_vector%.
Signed-off-by: Carlos Maniero <carlos@maniero.me>
Diffstat (limited to 'src/parser.c')
-rw-r--r-- | src/parser.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/parser.c b/src/parser.c index f51f550..82d25f5 100644 --- a/src/parser.c +++ b/src/parser.c @@ -431,7 +431,7 @@ parser_parse_block_declarations(parser_t *parser) if (return_node == NULL) { scope_leave(parser->scope); - vector_destroy(body); + ast_node_destroy_vector(body); return NULL; } @@ -444,7 +444,7 @@ parser_parse_block_declarations(parser_t *parser) if (variable_node == NULL) { scope_leave(parser->scope); - vector_destroy(body); + ast_node_destroy_vector(body); return NULL; } @@ -457,7 +457,7 @@ parser_parse_block_declarations(parser_t *parser) if (variable_assignment == NULL) { scope_leave(parser->scope); - vector_destroy(body); + ast_node_destroy_vector(body); return NULL; } @@ -468,7 +468,7 @@ parser_parse_block_declarations(parser_t *parser) parser_error_report_unexpected_token(parser); scope_leave(parser->scope); - vector_destroy(body); + ast_node_destroy_vector(body); return NULL; } |