From 19367a27472a06634424e56c1eb21e4f53da4e9e Mon Sep 17 00:00:00 2001 From: Preston Pan Date: Sun, 8 Jan 2023 15:39:19 -0800 Subject: fixed invalid read; some memory leakage fixed but not completely --- src/ast.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src/ast.c') diff --git a/src/ast.c b/src/ast.c index eefbc45..ef2246e 100644 --- a/src/ast.c +++ b/src/ast.c @@ -94,3 +94,20 @@ bool is_proper_list(ast_t *e) { return true; return false; } + +void ast_free(ast_t *e) { + if (e->cdr != NULL) { + ast_free(e->cdr); + } + if (e->car != NULL) { + ast_free(e->car); + } + + if (e->type == AST_ROOT) { + for (int i = 0; i < e->root_size; i++) { + ast_free(e->subnodes[i]); + } + } + + free(e); +} -- cgit