From 1fc4ef18d1837482b53bc4bb92dd96a449982148 Mon Sep 17 00:00:00 2001 From: Yuichi Nishiwaki Date: Wed, 16 Oct 2013 09:21:13 +0900 Subject: [PATCH] fix gc bug --- src/gc.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/gc.c b/src/gc.c index a486d905..057199f4 100644 --- a/src/gc.c +++ b/src/gc.c @@ -230,7 +230,7 @@ gc_sweep_phase(pic_state *pic) #endif base = pic->heap->base; - for (p = base->s.ptr; p != base; p = p->s.ptr) { + for (p = base->s.ptr; ; p = p->s.ptr) { #if GC_DEBUG puts("sweeping block"); @@ -283,6 +283,9 @@ gc_sweep_phase(pic_state *pic) goto retry; } + + if (p->s.ptr == base) + break; } }