summaryrefslogtreecommitdiff
path: root/src/parser.c
diff options
context:
space:
mode:
authorCarlos Maniero <carlos@maniero.me>2023-05-02 23:45:57 -0300
committerJohnny Richard <johnny@johnnyrichard.com>2023-05-03 23:01:24 +0200
commit7aebc787c5529997e422a054398ed739ca4cddfe (patch)
treedea448248b789675245925c8f7c5318839de1aeb /src/parser.c
parent0b0ce0d1735b4358691fb1d4a85b550d45ae9d48 (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.c8
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;
}