From be23f457c08fcff6f80b0d7121c7084ca90c7508 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Tue, 1 Aug 2006 12:48:48 +0000 Subject: [PATCH] try rewinding the other 3m GC change, instead svn: r3916 --- src/mzscheme/gc2/newgc.c | 9 ++++----- src/mzscheme/src/jit.c | 2 +- src/mzscheme/src/list.c | 4 ++-- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/mzscheme/gc2/newgc.c b/src/mzscheme/gc2/newgc.c index d93252fa3b..58e75906b5 100644 --- a/src/mzscheme/gc2/newgc.c +++ b/src/mzscheme/gc2/newgc.c @@ -493,8 +493,6 @@ void *GC_malloc_one_small_tagged(size_t sizeb) { unsigned long newsize; - return GC_malloc_one_tagged(sizeb); - sizeb += WORD_SIZE; sizeb = ALIGN_BYTES_SIZE(sizeb); newsize = gen0_alloc_page->size + sizeb; @@ -566,10 +564,10 @@ inline static void resize_gen0(unsigned long new_size) struct mpage *work = gen0_pages, *prev = NULL; unsigned long alloced_size = 0; - /* fist make sure the big pages pointer is clean */ + /* first, make sure the big pages pointer is clean */ gen0_big_pages = NULL; - /* then, clear out any parts of gen0 we're keeping, and deallocated any + /* then, reset any parts of gen0 we're keeping, and deallocate any parts we're throwing out */ while(work) { if(alloced_size > new_size) { @@ -591,10 +589,11 @@ inline static void resize_gen0(unsigned long new_size) break; } else { - /* We used to zero out the memory here, but its + /* We used to zero out the memory here, but it's better to zero out on allocation, instead: better locality, and we don't have to zero for atomic allocations. */ + bzero(PPTR(work) + HEADER_SIZEW, work->size - gcWORDS_TO_BYTES(HEADER_SIZEW)); /* REMOVEME */ alloced_size += GEN0_PAGE_SIZE; work->size = HEADER_SIZEB; prev = work; diff --git a/src/mzscheme/src/jit.c b/src/mzscheme/src/jit.c index b973fd4c0a..80f289692a 100644 --- a/src/mzscheme/src/jit.c +++ b/src/mzscheme/src/jit.c @@ -2900,7 +2900,7 @@ static int generate_inlined_binary(mz_jit_state *jitter, Scheme_App3_Rec *app, i mz_prepare(2); jit_pusharg_p(JIT_R1); jit_pusharg_p(JIT_R0); -#ifdef __MZ_PRECISE_GC +#ifdef MZ_PRECISE_GC (void)mz_finish(GC_malloc_pair); #else (void)mz_finish(scheme_make_pair); diff --git a/src/mzscheme/src/list.c b/src/mzscheme/src/list.c index c484b123b2..1c5a9f3dd7 100644 --- a/src/mzscheme/src/list.c +++ b/src/mzscheme/src/list.c @@ -528,7 +528,7 @@ scheme_init_list (Scheme_Env *env) Scheme_Object *scheme_make_pair(Scheme_Object *car, Scheme_Object *cdr) { -#ifndef __MZ_PRECISE_GC +#ifndef MZ_PRECISE_GC Scheme_Object *cons; #endif @@ -541,7 +541,7 @@ Scheme_Object *scheme_make_pair(Scheme_Object *car, Scheme_Object *cdr) *(long *)0x0 = 1; #endif -#ifdef __MZ_PRECISE_GC +#ifdef MZ_PRECISE_GC return GC_malloc_pair(car, cdr); #else cons = scheme_alloc_object();