From 44b5153360ddab72a8d9774264fea387721bbc5a Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Tue, 12 Sep 2023 09:20:12 +0900 Subject: [PATCH] gc.c: revert af68de52dddd80afe1620c45680eb055767a412f The change increased memory consumption significantly --- src/gc.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/src/gc.c b/src/gc.c index 7c719990f..537414792 100644 --- a/src/gc.c +++ b/src/gc.c @@ -1067,7 +1067,6 @@ incremental_sweep_phase(mrb_state *mrb, mrb_gc *gc, size_t limit) mrb_heap_page *prev = gc->sweeps; mrb_heap_page *page = prev ? prev->next : gc->heaps; size_t tried_sweep = 0; - mrb_bool rebuild = FALSE; while (page && (tried_sweep < limit)) { RVALUE *p = objects(page); @@ -1117,7 +1116,6 @@ incremental_sweep_phase(mrb_state *mrb, mrb_gc *gc, size_t limit) mrb_free(mrb, page); page = next; - rebuild = TRUE; } else { if (page->freelist == NULL && is_minor_gc(gc)) @@ -1134,13 +1132,11 @@ incremental_sweep_phase(mrb_state *mrb, mrb_gc *gc, size_t limit) gc->sweeps = prev; /* rebuild free_heaps link */ - if (rebuild) { - gc->free_heaps = NULL; - for (mrb_heap_page *p = gc->heaps; p; p=p->next) { - if (p->freelist) { - p->free_next = gc->free_heaps; - gc->free_heaps = p; - } + gc->free_heaps = NULL; + for (mrb_heap_page *p = gc->heaps; p; p=p->next) { + if (p->freelist) { + p->free_next = gc->free_heaps; + gc->free_heaps = p; } }