From ccca6ec45895020b0b32b99652fb1b3cbbc42e93 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Mon, 13 Mar 2023 18:50:51 +0900 Subject: [PATCH] gc.c (clear_all_old): simplify the code The function is called only with generational mode. --- src/gc.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/gc.c b/src/gc.c index 5f46929f0..e5488dfcc 100644 --- a/src/gc.c +++ b/src/gc.c @@ -1233,10 +1233,8 @@ incremental_gc_step(mrb_state *mrb, mrb_gc *gc) static void clear_all_old(mrb_state *mrb, mrb_gc *gc) { - mrb_bool origin_mode = gc->generational; - mrb_assert(is_generational(gc)); - if (is_major_gc(gc)) { + if (gc->full) { /* finish the half baked GC */ incremental_gc_finish(mrb, gc); } @@ -1246,9 +1244,8 @@ clear_all_old(mrb_state *mrb, mrb_gc *gc) gc->generational = FALSE; prepare_incremental_sweep(mrb, gc); incremental_gc_finish(mrb, gc); + gc->generational = TRUE; } - gc->generational = origin_mode; - /* The gray objects have already been painted as white */ gc->atomic_gray_list = gc->gray_list = NULL; }