Commit 8a9d4184 authored by Josh Bleecher Snyder's avatar Josh Bleecher Snyder

runtime: simplify evacuate's handling of NaNs

The new code is not quite equivalent to the old,
in that if newbit was very large it might have altered the new tophash.
The old behavior is unnecessary and probably undesirable.

Change-Id: I7fb3222520cb61081a857adcddfbb9078ead7122
Reviewed-on: https://go-review.googlesource.com/56930
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: default avatarKeith Randall <khr@golang.org>
parent 1ba4556a
......@@ -1086,15 +1086,12 @@ func evacuate(t *maptype, h *hmap, oldbucket uintptr) {
// We recompute a new random tophash for the next level so
// these keys will get evenly distributed across all buckets
// after multiple grows.
if top&1 != 0 {
hash |= newbit
} else {
hash &^= newbit
}
useY = top & 1
top = tophash(hash)
}
if hash&newbit != 0 {
useY = 1
} else {
if hash&newbit != 0 {
useY = 1
}
}
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment