From 1a0a6f9d5004d0ae078d7772e9623f9f6117f9be Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Tue, 26 May 2009 17:39:25 -0700 Subject: [PATCH] add NUL when allocating strings, to make use of getenv by low-level runtime easier. fix 32-bit bug in gc (there are still more). R=ken OCL=29415 CL=29415 --- src/runtime/mgc0.c | 12 ++++++++---- src/runtime/string.c | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/runtime/mgc0.c b/src/runtime/mgc0.c index 9c4061f6ec..d58d6ce44d 100644 --- a/src/runtime/mgc0.c +++ b/src/runtime/mgc0.c @@ -22,6 +22,10 @@ enum { extern byte etext[]; extern byte end[]; +enum { + PtrSize = sizeof(void*) +}; + static void scanblock(int32 depth, byte *b, int64 n) { @@ -34,14 +38,14 @@ scanblock(int32 depth, byte *b, int64 n) if(Debug) printf("%d scanblock %p %D\n", depth, b, n); - off = (uint32)(uintptr)b & 7; + off = (uint32)(uintptr)b & (PtrSize-1); if(off) { - b += 8 - off; - n -= 8 - off; + b += PtrSize - off; + n -= PtrSize - off; } vp = (void**)b; - n /= 8; + n /= PtrSize; for(i=0; i maxstring) maxstring = l; -- 2.48.1