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); }