From 923d43001ebd9659f7b247c6d758062c2882b2f6 Mon Sep 17 00:00:00 2001 From: Kevin Tew Date: Fri, 12 Dec 2008 19:34:55 +0000 Subject: [PATCH] Modified designate_modified to check master gc svn: r12800 --- src/mzscheme/gc2/newgc.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/mzscheme/gc2/newgc.c b/src/mzscheme/gc2/newgc.c index 94b7d5d5cd..db43c7645f 100644 --- a/src/mzscheme/gc2/newgc.c +++ b/src/mzscheme/gc2/newgc.c @@ -1407,9 +1407,8 @@ void GC_register_new_thread(void *t, void *c) /* administration / initialization */ /*****************************************************************************/ -static int designate_modified(void *p) +static int designate_modified_gc(NewGC *gc, void *p) { - NewGC *gc = GC_get_GC(); struct mpage *page = pagemap_find_page(gc->page_maps, p); if (gc->no_further_modifications) { @@ -1425,11 +1424,20 @@ static int designate_modified(void *p) return 1; } } else { + if (gc->primoridal_gc) { + return designate_modified_gc(gc->primoridal_gc, p); + } GCPRINT(GCOUTF, "Seg fault (internal error) at %p\n", p); } return 0; } +static int designate_modified(void *p) { + NewGC *gc = GC_get_GC(); + return designate_modified_gc(gc, p); +} + + void GC_write_barrier(void *p) { (void)designate_modified(p);