diff --git a/src/gc.c b/src/gc.c index 4bee82364..28cab05b2 100644 --- a/src/gc.c +++ b/src/gc.c @@ -772,6 +772,7 @@ mrb_gc_mark(mrb_state *mrb, struct RBasic *obj) { if (obj == 0) return; if (!is_white(obj)) return; + if (is_red(obj)) return; mrb_assert((obj)->tt != MRB_TT_FREE); add_gray_list(mrb, &mrb->gc, obj); }