gc.c: revert af68de52dddd80afe1620c45680eb055767a412f

The change increased memory consumption significantly
This commit is contained in:
Yukihiro "Matz" Matsumoto
2023-09-12 09:20:12 +09:00
parent 22e74a7ee5
commit 44b5153360
+5 -9
View File
@@ -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;
}
}