From 2eefee0d6a1b25963b5550ce920de9e832675aa1 Mon Sep 17 00:00:00 2001 From: dearblue Date: Sat, 30 Jul 2022 22:32:01 +0900 Subject: [PATCH] Ignore `MRB_GC_RED` objects in `mrb_field_write_barrier()` --- src/gc.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gc.c b/src/gc.c index 4f55dc6ae..f9e6d21b9 100644 --- a/src/gc.c +++ b/src/gc.c @@ -1376,6 +1376,7 @@ mrb_field_write_barrier(mrb_state *mrb, struct RBasic *obj, struct RBasic *value if (!is_black(obj)) return; if (!is_white(value)) return; + if (is_red(value)) return; mrb_assert(gc->state == MRB_GC_STATE_MARK || (!is_dead(gc, value) && !is_dead(gc, obj))); mrb_assert(is_generational(gc) || gc->state != MRB_GC_STATE_ROOT);