From 3d3ca985b016afa7d07b59a067a661ce47b221ba Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Fri, 9 Aug 2013 18:11:16 +0900 Subject: remove duplicated incremental_gc_until() in generational GC; #1449 --- src/gc.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/gc.c b/src/gc.c index 3e3acfdfb..222fc0ce6 100644 --- a/src/gc.c +++ b/src/gc.c @@ -1007,16 +1007,15 @@ mrb_full_gc(mrb_state *mrb) GC_INVOKE_TIME_REPORT("mrb_full_gc()"); GC_TIME_START; - if (mrb->gc_state != GC_STATE_NONE) { - /* finish half baked GC cycle */ - incremental_gc_until(mrb, GC_STATE_NONE); - } - - /* clear all the old objects back to young */ if (is_generational(mrb)) { + /* clear all the old objects back to young */ clear_all_old(mrb); mrb->gc_full = TRUE; } + else if (mrb->gc_state != GC_STATE_NONE) { + /* finish half baked GC cycle */ + incremental_gc_until(mrb, GC_STATE_NONE); + } incremental_gc_until(mrb, GC_STATE_NONE); mrb->gc_threshold = (mrb->gc_live_after_mark/100) * mrb->gc_interval_ratio; -- cgit v1.2.3