diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/ast.c | 2 | ||||
-rw-r--r-- | src/ast.h | 4 | ||||
-rw-r--r-- | src/parser.c | 8 |
3 files changed, 9 insertions, 5 deletions
@@ -31,7 +31,7 @@ ast_node_new(void) return node; } -static void +void ast_node_destroy_vector(vector_t *vector) { for (size_t i = 0; i < vector->size; i++) { @@ -124,6 +124,10 @@ typedef struct ast_node_t ast_node_t * ast_node_new(void); + +void +ast_node_destroy_vector(vector_t *vector); + void ast_node_destroy(ast_node_t *node); 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; } |