summaryrefslogtreecommitdiffstats
path: root/gc.c
diff options
context:
space:
mode:
Diffstat (limited to 'gc.c')
-rw-r--r--gc.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/gc.c b/gc.c
index 9125f070..af91bba7 100644
--- a/gc.c
+++ b/gc.c
@@ -623,7 +623,12 @@ static void prepare_finals(void)
f->reachable = is_reachable(f->obj);
for (f = final_list; f; f = f->next) {
- mark_obj(f->obj);
+ if (!f->reachable) {
+#if CONFIG_GEN_GC
+ f->obj->t.gen = 0;
+#endif
+ mark_obj(f->obj);
+ }
mark_obj(f->fun);
}
}