gc.c (clear_all_old): avoid calling GC twice in the function
@@ -1287,12 +1287,13 @@ clear_all_old(mrb_state *mrb, mrb_gc *gc)
/* finish the half baked GC */
incremental_gc_finish(mrb, gc);
}
-
+ else {
/* Sweep the dead objects, then reset all the live objects
* (including all the old objects, of course) to white. */
gc->generational = FALSE;
prepare_incremental_sweep(mrb, gc);
incremental_gc_finish(mrb, gc);
+ }
gc->generational = origin_mode;
/* The gray objects have already been painted as white */
