From 9f840e111a5733d80498918bf7604e7b837733f7 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Sat, 9 Sep 2023 23:54:51 +0900 Subject: [PATCH] gc.c: inline `unlink_heap_page` which was called only once --- src/gc.c | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/src/gc.c b/src/gc.c index 768d091b6..ad491a30e 100644 --- a/src/gc.c +++ b/src/gc.c @@ -297,17 +297,6 @@ mrb_object_dead_p(mrb_state *mrb, struct RBasic *object) return is_dead(gc, object); } -static void -unlink_heap_page(mrb_gc *gc, mrb_heap_page *page) -{ - if (page->prev) - page->prev->next = page->next; - if (page->next) - page->next->prev = page->prev; - if (gc->heaps == page) - gc->heaps = page->next; -} - static void add_heap(mrb_state *mrb, mrb_gc *gc) { @@ -1115,7 +1104,14 @@ incremental_sweep_phase(mrb_state *mrb, mrb_gc *gc, size_t limit) if (dead_slot) { mrb_heap_page *next = page->next; - unlink_heap_page(gc, page); + /* unlink_heap_page */ + if (page->prev) + page->prev->next = page->next; + if (page->next) + page->next->prev = page->prev; + if (gc->heaps == page) + gc->heaps = page->next; + mrb_free(mrb, page); page = next; }