From 7841a0cac5f5310499f24383ea23cf353840ba60 Mon Sep 17 00:00:00 2001 From: Narihiro Nakamura Date: Thu, 17 Jan 2013 10:11:33 +0900 Subject: Clear all old flags, even if we change the gc mode during the major gc. --- src/gc.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/gc.c b/src/gc.c index 69e36640d..1833bf984 100644 --- a/src/gc.c +++ b/src/gc.c @@ -1143,13 +1143,8 @@ static void change_gen_gc_mode(mrb_state *mrb, mrb_int enable) { if (is_generational(mrb) && !enable) { - if (is_major_gc(mrb)) { - advance_phase(mrb, GC_STATE_NONE); - } - else { - clear_all_old(mrb); - gc_assert(mrb->gc_state == GC_STATE_NONE); - } + clear_all_old(mrb); + gc_assert(mrb->gc_state == GC_STATE_NONE); mrb->gc_full = FALSE; } else if (!is_generational(mrb) && enable) { -- cgit v1.2.3