Fix memory leaks in compiler
diff --git a/src/lisp/lisp.c b/src/lisp/lisp.c
index ac6470d..6299e03 100644
--- a/src/lisp/lisp.c
+++ b/src/lisp/lisp.c
@@ -25,6 +25,7 @@
void add_this_alloc(struct alloc *a, int tag)
{
+ a->mark = -1;
a->type_tag = tag;
a->pool = current_pool;
@@ -600,6 +601,18 @@
a[-1].pool = current_pool;
}
+void del_alloc(struct alloc *alloc)
+{
+ if (alloc->type_tag == CLOSURE_TAG)
+ {
+ fprintf(stderr, "del_alloc closure\n");
+ struct closure_alloc *ca = alloc;
+ free(ca->closure.args);
+ }
+
+ free_aligned(alloc);
+}
+
int cons_line(value_t val)
{
if (!consp(val))