From fc4f0b9be7133dc901d02bb938e90ffd1487e50a Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Tue, 20 Oct 2015 07:22:55 +0900 Subject: do not assert is_dead() during mark phase; close #2825 ref #2996 #2769 --- src/gc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/gc.c b/src/gc.c index 885368f37..d55a8901e 100644 --- a/src/gc.c +++ b/src/gc.c @@ -1153,7 +1153,7 @@ mrb_field_write_barrier(mrb_state *mrb, struct RBasic *obj, struct RBasic *value if (!is_black(obj)) return; if (!is_white(value)) return; - mrb_assert(!is_dead(mrb, value) && !is_dead(mrb, obj)); + mrb_assert(mrb->gc_state == GC_STATE_MARK || (!is_dead(mrb, value) && !is_dead(mrb, obj))); mrb_assert(is_generational(mrb) || mrb->gc_state != GC_STATE_ROOT); if (is_generational(mrb) || mrb->gc_state == GC_STATE_MARK) { -- cgit v1.2.3