diff options
| author | Russ Cox <rsc@golang.org> | 2014-09-12 07:36:23 -0400 |
|---|---|---|
| committer | Russ Cox <rsc@golang.org> | 2014-09-12 07:36:23 -0400 |
| commit | a7c6d89166fd7bf6c9af6013cbfaa21971ba28f0 (patch) | |
| tree | b79bc2df78ba0baccfbf368804da726105aa1a58 /src/runtime/stack.c | |
| parent | f0d44dbeaf28d157f8eba85ec9f9bffdc84ce3e0 (diff) | |
| download | go-a7c6d89166fd7bf6c9af6013cbfaa21971ba28f0.tar.xz | |
runtime: tell the truth about BitVector type
Dmitriy changed all the execution to interpret the BitVector
as an array of bytes. Update the declaration and generation
of the bitmaps to match, to avoid problems on big-endian
machines.
LGTM=khr
R=khr
CC=dvyukov, golang-codereviews
https://golang.org/cl/140570044
Diffstat (limited to 'src/runtime/stack.c')
| -rw-r--r-- | src/runtime/stack.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/runtime/stack.c b/src/runtime/stack.c index 53ad90a5de..f29266eb6b 100644 --- a/src/runtime/stack.c +++ b/src/runtime/stack.c @@ -370,8 +370,8 @@ adjustpointers(byte **scanp, BitVector *bv, AdjustInfo *adjinfo, Func *f) num = bv->n / BitsPerPointer; for(i = 0; i < num; i++) { if(StackDebug >= 4) - runtime·printf(" %p:%s:%p\n", &scanp[i], mapnames[bv->data[i / (32 / BitsPerPointer)] >> (i * BitsPerPointer & 31) & 3], scanp[i]); - switch(bv->data[i / (32 / BitsPerPointer)] >> (i * BitsPerPointer & 31) & 3) { + runtime·printf(" %p:%s:%p\n", &scanp[i], mapnames[bv->bytedata[i / (8 / BitsPerPointer)] >> (i * BitsPerPointer & 7) & 3], scanp[i]); + switch(bv->bytedata[i / (8 / BitsPerPointer)] >> (i * BitsPerPointer & 7) & 3) { case BitsDead: if(runtime·debug.gcdead) scanp[i] = (byte*)PoisonStack; @@ -394,7 +394,7 @@ adjustpointers(byte **scanp, BitVector *bv, AdjustInfo *adjinfo, Func *f) } break; case BitsMultiWord: - switch(bv->data[(i+1) / (32 / BitsPerPointer)] >> ((i+1) * BitsPerPointer & 31) & 3) { + switch(bv->bytedata[(i+1) / (8 / BitsPerPointer)] >> ((i+1) * BitsPerPointer & 7) & 3) { default: runtime·throw("unexpected garbage collection bits"); case BitsEface: |
