From fc750d1d9303776cf00971b5fbf1a1c3e5d45c16 Mon Sep 17 00:00:00 2001 From: Felix Perktold Date: Sun, 25 Jan 2026 01:41:00 +0100 Subject: fix --- lisp.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'lisp.c') diff --git a/lisp.c b/lisp.c index 52f7869..c95bdf7 100644 --- a/lisp.c +++ b/lisp.c @@ -499,9 +499,9 @@ void mark_val(value *val) { void mark_env(env *e) { if (!e || e->marked) { return; } - e->marked = 1; for (env *cur = e; cur; cur = cur->next) { + cur->marked = 1; if (cur->value) { mark_val(cur->value); } @@ -546,7 +546,7 @@ void free_value(value *val) { free(val); } -int sweep() { +void sweep() { reg *r = global_reg; reg *prev = NULL; @@ -578,6 +578,7 @@ void reset_env_marks(env *e) { } void reset_marks() { + reset_env_marks(global_env); for (reg *r = global_reg; r; r = r->next) { if (r->value) { r->value->marked = 0; -- cgit v1.2.3