From 4fe8b074bb245e049b6fecbd259af01903586a0e Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Wed, 13 Sep 2023 23:50:39 +0900 Subject: [PATCH] gc.c: remove `prev` link from mrb_heap_page --- src/gc.c | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/src/gc.c b/src/gc.c index 537414792..ddfa9fbf4 100644 --- a/src/gc.c +++ b/src/gc.c @@ -150,7 +150,6 @@ typedef struct { typedef struct mrb_heap_page { struct RBasic *freelist; - struct mrb_heap_page *prev; struct mrb_heap_page *next; struct mrb_heap_page *free_next; mrb_bool old:1; @@ -312,8 +311,6 @@ add_heap(mrb_state *mrb, mrb_gc *gc) page->freelist = prev; page->next = gc->heaps; - if (gc->heaps) - gc->heaps->prev = page; gc->heaps = page; page->free_next = gc->free_heaps; @@ -1105,12 +1102,7 @@ incremental_sweep_phase(mrb_state *mrb, mrb_gc *gc, size_t limit) if (dead_slot) { mrb_heap_page *next = page->next; - mrb_assert(prev == page->prev); - /* unlink_heap_page */ - if (page->prev) - page->prev->next = page->next; - if (page->next) - page->next->prev = page->prev; + if (prev) prev->next = next; if (gc->heaps == page) gc->heaps = page->next;