diff --git a/src/gc.c b/src/gc.c index d9eb18280..4b6efdc39 100644 --- a/src/gc.c +++ b/src/gc.c @@ -1048,6 +1048,7 @@ incremental_marking_phase(mrb_state *mrb, mrb_gc *gc, size_t limit) while (gc->gray_list && tried_marks < limit) { struct RBasic *obj = gc->gray_list; gc->gray_list = obj->gcnext; + obj->gcnext = NULL; gc_mark_children(mrb, gc, obj); tried_marks += gc_gray_counts(mrb, gc, obj); }