From d23a9a4827f942d50ba5c90ad348f18799982d54 Mon Sep 17 00:00:00 2001 From: "Javier B. Torres" Date: Mon, 12 Jan 2026 09:47:19 -0300 Subject: [PATCH] fix gc not acknowledging macros and strings --- src/gc.c | 5 ++++- src/main.c | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/gc.c b/src/gc.c index b6c1342..57ea4d4 100644 --- a/src/gc.c +++ b/src/gc.c @@ -99,13 +99,16 @@ V gc_collect(Gc *gc) { obj->tail = forward(gc, obj->tail); break; } - case TYPE_CLOS: { + case TYPE_CLOS: + case TYPE_MAC: { Cl *obj = (Cl *)(hdr + 1); obj->args = forward(gc, obj->args); obj->body = forward(gc, obj->body); obj->env = forward(gc, obj->env); break; } + case TYPE_STR: + break; case TYPE_FWD: fprintf(stderr, "fatal GC error: forwarding pointer in to-space\n"); abort(); diff --git a/src/main.c b/src/main.c index 8cdac9d..0b26179 100644 --- a/src/main.c +++ b/src/main.c @@ -24,6 +24,7 @@ int main(void) { error_print(&interp); } gc_rootreset(&interp.gc, mark); + gc_collect(&interp.gc); nexttoken(&lex); }