diff options
author | Preston Pan <preston@nullring.xyz> | 2023-01-08 15:39:19 -0800 |
---|---|---|
committer | Preston Pan <preston@nullring.xyz> | 2023-01-08 15:39:19 -0800 |
commit | 19367a27472a06634424e56c1eb21e4f53da4e9e (patch) | |
tree | fc58a08d36d451bdd1e7143a7358ac8a374355f7 /src/include | |
parent | 87d82ead963c24d84a4f6e417b96b9bf73d132bb (diff) |
fixed invalid read; some memory leakage fixed but not completely
Diffstat (limited to 'src/include')
-rw-r--r-- | src/include/ast.h | 2 | ||||
-rw-r--r-- | src/include/hash_table.h | 3 | ||||
-rw-r--r-- | src/include/parser.h | 2 | ||||
-rw-r--r-- | src/include/stack.h | 2 |
4 files changed, 9 insertions, 0 deletions
diff --git a/src/include/ast.h b/src/include/ast.h index 8b60490..d330ee5 100644 --- a/src/include/ast.h +++ b/src/include/ast.h @@ -54,4 +54,6 @@ ast_t *init_ast_root(ast_t **subnodes, int size); void ast_type_print(ast_t *e); bool is_proper_list(ast_t *e); + +void ast_free(ast_t *e); #endif diff --git a/src/include/hash_table.h b/src/include/hash_table.h index 833daee..b70331e 100644 --- a/src/include/hash_table.h +++ b/src/include/hash_table.h @@ -36,6 +36,8 @@ bool sl_list_exists(sl_list_t *l, char *key); void sl_list_free(sl_list_t *l); +void sl_list_free_some(sl_list_t *l); + hash_table_t *init_hash_table(int size); void hash_table_add(hash_table_t *h, char *key, ast_t *value); @@ -48,4 +50,5 @@ unsigned long hash(char *key, int size); void hash_table_free(hash_table_t *h); +void hash_table_free_some(hash_table_t *h); #endif diff --git a/src/include/parser.h b/src/include/parser.h index 7b26696..d159646 100644 --- a/src/include/parser.h +++ b/src/include/parser.h @@ -45,4 +45,6 @@ void parse_bind(parser_t *parser); ast_t *parse_expr(parser_t *parser); ast_t *parse_all(parser_t *parser); + +void parser_free(parser_t *parser); #endif diff --git a/src/include/stack.h b/src/include/stack.h index 6b0ed9a..e5630fc 100644 --- a/src/include/stack.h +++ b/src/include/stack.h @@ -15,4 +15,6 @@ hash_table_t *stack_peek(stack_t *s); hash_table_t *stack_pop(stack_t *s); bool is_empty(stack_t *s); + +void stack_free(stack_t *s); #endif |