mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
runtime: document bmap.tophash
In particular, it wasn't obvious that some values are special (unless you also found those special values), so document that it isn't necessarily a hash value. Change-Id: Iff292822b44408239e26cd882dc07be6df2c1d38 Reviewed-on: https://go-review.googlesource.com/30143 Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
parent
38f1df66ff
commit
bf776a988b
1 changed files with 5 additions and 0 deletions
|
|
@ -130,6 +130,9 @@ type hmap struct {
|
||||||
|
|
||||||
// A bucket for a Go map.
|
// A bucket for a Go map.
|
||||||
type bmap struct {
|
type bmap struct {
|
||||||
|
// tophash generally contains the top byte of the hash value
|
||||||
|
// for each key in this bucket. If tophash[0] < minTopHash,
|
||||||
|
// tophash[0] is a bucket evacuation state instead.
|
||||||
tophash [bucketCnt]uint8
|
tophash [bucketCnt]uint8
|
||||||
// Followed by bucketCnt keys and then bucketCnt values.
|
// Followed by bucketCnt keys and then bucketCnt values.
|
||||||
// NOTE: packing all the keys together and then all the values together makes the
|
// NOTE: packing all the keys together and then all the values together makes the
|
||||||
|
|
@ -1079,6 +1082,8 @@ func evacuate(t *maptype, h *hmap, oldbucket uintptr) {
|
||||||
// Unlink the overflow buckets & clear key/value to help GC.
|
// Unlink the overflow buckets & clear key/value to help GC.
|
||||||
if h.flags&oldIterator == 0 {
|
if h.flags&oldIterator == 0 {
|
||||||
b = (*bmap)(add(h.oldbuckets, oldbucket*uintptr(t.bucketsize)))
|
b = (*bmap)(add(h.oldbuckets, oldbucket*uintptr(t.bucketsize)))
|
||||||
|
// Preserve b.tophash because the evacuation
|
||||||
|
// state is maintained there.
|
||||||
memclr(add(unsafe.Pointer(b), dataOffset), uintptr(t.bucketsize)-dataOffset)
|
memclr(add(unsafe.Pointer(b), dataOffset), uintptr(t.bucketsize)-dataOffset)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue