diff --git a/src/gc.c b/src/gc.c index 54dc9cf39..eb1dee94c 100644 --- a/src/gc.c +++ b/src/gc.c @@ -490,11 +490,10 @@ mrb_obj_alloc(mrb_state *mrb, enum mrb_vtype ttype, struct RClass *cls) mrb_incremental_gc(mrb); } - mrb_heap_page *page = gc->heaps; - if (page == NULL) { + if (gc->heaps == NULL) { add_heap(mrb, gc); - page = gc->heaps; } + mrb_heap_page *page = gc->heaps; while (page->freelist == NULL) { page = page->next; if (page == NULL) {