From 8e23842d0c0d30279037ae701a14afd9331f8ea8 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Sat, 26 Apr 2008 13:51:27 +0000 Subject: [PATCH] fix bug related to allocating primitives on startup, which might explain some failures in writing bytecode svn: r9488 --- src/mzscheme/gc2/compact.c | 5 ++++- src/mzscheme/gc2/newgc.c | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/mzscheme/gc2/compact.c b/src/mzscheme/gc2/compact.c index 90d66ce4b5..af9f35dc20 100644 --- a/src/mzscheme/gc2/compact.c +++ b/src/mzscheme/gc2/compact.c @@ -3967,7 +3967,10 @@ void *GC_malloc_atomic(size_t size_in_bytes) /* Plain malloc: */ void *GC_malloc_atomic_uncollectable(size_t size_in_bytes) { - return malloc(size_in_bytes); + void *p; + p = malloc(size_in_bytes); + memset(p, 0, size_in_bytes); + return p; } /******************************************************************************/ diff --git a/src/mzscheme/gc2/newgc.c b/src/mzscheme/gc2/newgc.c index ec05d3e102..885308066d 100644 --- a/src/mzscheme/gc2/newgc.c +++ b/src/mzscheme/gc2/newgc.c @@ -556,7 +556,7 @@ void *GC_malloc_one_tagged(size_t s) { return allocate(s, PAGE_TAGGED); } void *GC_malloc_one_xtagged(size_t s) { return allocate(s, PAGE_XTAGGED); } void *GC_malloc_array_tagged(size_t s) { return allocate(s, PAGE_TARRAY); } void *GC_malloc_atomic(size_t s) { return allocate(s, PAGE_ATOMIC); } -void *GC_malloc_atomic_uncollectable(size_t s) { return malloc(s); } +void *GC_malloc_atomic_uncollectable(size_t s) { void *p = malloc(s); memset(p, 0, s); return p; } void *GC_malloc_allow_interior(size_t s) {return allocate_big(s, PAGE_ARRAY);} void *GC_malloc_atomic_allow_interior(size_t s) {return allocate_big(s, PAGE_ATOMIC);} void *GC_malloc_tagged_allow_interior(size_t s) {return allocate_big(s, PAGE_TAGGED);}