diff --git a/src/mzscheme/gc2/compact.c b/src/mzscheme/gc2/compact.c index 38e34240c8..20fd4084fa 100644 --- a/src/mzscheme/gc2/compact.c +++ b/src/mzscheme/gc2/compact.c @@ -2976,7 +2976,7 @@ static void gcollect(int full) getrusage(RUSAGE_SELF, &pre); #endif - sort_and_merge_roots(); + sort_and_merge_roots(&GC->roots); during_gc = 1; diff --git a/src/mzscheme/gc2/newgc.c b/src/mzscheme/gc2/newgc.c index b46af4bc74..1c71c55592 100644 --- a/src/mzscheme/gc2/newgc.c +++ b/src/mzscheme/gc2/newgc.c @@ -937,7 +937,7 @@ static inline void *get_stack_base() { unsigned long j; \ Roots *roots = &GC->roots; \ if(roots->roots) { \ - sort_and_merge_roots(); \ + sort_and_merge_roots(roots); \ for(j = 0; j < roots->count; j += 2) { \ void **start = (void**)roots->roots[j]; \ void **end = (void**)roots->roots[j+1]; \ diff --git a/src/mzscheme/gc2/roots.c b/src/mzscheme/gc2/roots.c index 5e377f4269..45816430c2 100644 --- a/src/mzscheme/gc2/roots.c +++ b/src/mzscheme/gc2/roots.c @@ -33,9 +33,8 @@ static int compare_roots(const void *a, const void *b) return 1; } -static void sort_and_merge_roots() +static void sort_and_merge_roots(Roots *roots) { - Roots *roots = &GC->roots; if (roots->nothing_new) return;