From cc9514f8ca9eb432a0b62ead9743a321d5cfb015 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Thu, 15 Sep 2011 06:38:41 -0600 Subject: [PATCH] another place-channel finalization repair --- src/racket/gc2/newgc.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/racket/gc2/newgc.c b/src/racket/gc2/newgc.c index 067eca732c..e57a9ce98c 100644 --- a/src/racket/gc2/newgc.c +++ b/src/racket/gc2/newgc.c @@ -1558,22 +1558,26 @@ void GC_destroy_orphan_msg_memory(void *param) { if (msgm->big_pages) { - mpage *tmp = msgm->big_pages; + mpage *tmp = msgm->big_pages, *next; + next = tmp->next; free_orphaned_page(gc, tmp); - while (tmp->next) { - tmp = tmp->next; + while (next) { + tmp = next; + next = tmp->next; free_orphaned_page(gc, tmp); } } if (msgm->pages) { - mpage *tmp = msgm->pages; + mpage *tmp = msgm->pages, *next; + next = tmp->next; free_orphaned_page(gc, tmp); - while (tmp->next) { - tmp = tmp->next; + while (next) { + tmp = next; + next = tmp->next; free_orphaned_page(gc, tmp); }