diff options
| author | Russ Cox <rsc@golang.org> | 2010-10-06 11:54:41 -0400 |
|---|---|---|
| committer | Russ Cox <rsc@golang.org> | 2010-10-06 11:54:41 -0400 |
| commit | 8599a8372713d51713c09771bb1d7bb6a4e600d2 (patch) | |
| tree | 80d2a7c1289e4e2107da52578f61691b913d4eee /src/pkg | |
| parent | 335a318c279deae521ac538bacd55098c4685875 (diff) | |
| download | go-8599a8372713d51713c09771bb1d7bb6a4e600d2.tar.xz | |
runtime: correct iteration of large map values
The hash_next_and_deref was a dreg from a
previous large value scheme.
Fixes #1163.
R=r, r2
CC=golang-dev
https://golang.org/cl/2369043
Diffstat (limited to 'src/pkg')
| -rw-r--r-- | src/pkg/runtime/hashmap.c | 15 |
1 files changed, 2 insertions, 13 deletions
diff --git a/src/pkg/runtime/hashmap.c b/src/pkg/runtime/hashmap.c index eb98ab54aa..704196c2d2 100644 --- a/src/pkg/runtime/hashmap.c +++ b/src/pkg/runtime/hashmap.c @@ -920,17 +920,6 @@ void } } -void* -hash_next_and_deref(struct hash_iter *it) -{ - void *p; - - p = hash_next(it); - if(it->h->indirectval) - p = *(void**)p; - return p; -} - // mapiterinit(hmap *map[any]any, hiter *any); void ·mapiterinit(Hmap *h, struct hash_iter *it) @@ -940,7 +929,7 @@ void return; } hash_iter_init(h, it); - it->data = hash_next_and_deref(it); + it->data = hash_next(it); if(debug) { prints("runtime.mapiterinit: map="); ·printpointer(h); @@ -969,7 +958,7 @@ void if(gcwaiting) gosched(); - it->data = hash_next_and_deref(it); + it->data = hash_next(it); if(debug) { prints("runtime.mapiternext: iter="); ·printpointer(it); |
