From a1ea2a670c781848deec3ecb8657fc4aa3b8d34b Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Mon, 1 May 2017 18:10:44 +0900 Subject: Use index in `each_object`. --- src/gc.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'src/gc.c') diff --git a/src/gc.c b/src/gc.c index 469e5df6c..0fff408f3 100644 --- a/src/gc.c +++ b/src/gc.c @@ -1491,15 +1491,16 @@ gc_generational_mode_set(mrb_state *mrb, mrb_value self) static void gc_each_objects(mrb_state *mrb, mrb_gc *gc, mrb_each_object_callback *callback, void *data) { - mrb_heap_page* page = gc->heaps; + mrb_heap_page* page; + page = gc->heaps; while (page != NULL) { - RVALUE *p, *pend; + RVALUE *p; + int i; p = objects(page); - pend = p + MRB_HEAP_PAGE_SIZE; - for (;p < pend; p++) { - if ((*callback)(mrb, &p->as.basic, data) == MRB_EACH_OBJ_BREAK) + for (i=0; i < MRB_HEAP_PAGE_SIZE; i++) { + if ((*callback)(mrb, &p[i].as.basic, data) == MRB_EACH_OBJ_BREAK) return; } page = page->next; -- cgit v1.2.3