do not assert is_dead() during mark phase; close #2825 ref #2996 #2769

This commit is contained in:
Yukihiro "Matz" Matsumoto
2015-10-20 07:22:55 +09:00
parent f07ee20260
commit fc4f0b9be7
+1 -1
View File
@@ -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) {