diff options
author | zhangyunhao <zhangyunhao@bytedance.com> | 2022-04-19 14:44:03 +0800 |
---|---|---|
committer | Keith Randall <khr@golang.org> | 2022-04-21 17:46:04 +0000 |
commit | c2d436dcfad64d5cc301cf05d446f7a93c19133e (patch) | |
tree | 6776623bf3b03cb9b6f6a840af837cc4851514ff /src/hash | |
parent | b34838913da606087b0f3141891f7d0fb2254eef (diff) | |
download | go-c2d436dcfad64d5cc301cf05d446f7a93c19133e.tar.gz go-c2d436dcfad64d5cc301cf05d446f7a93c19133e.zip |
hash/maphash: use fastrand64 in MakeSeed
Change-Id: I5ccbcea4c53658136b25ca608faec19eeec2e908
Reviewed-on: https://go-review.googlesource.com/c/go/+/400915
Reviewed-by: Keith Randall <khr@golang.org>
Reviewed-by: Keith Randall <khr@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Run-TryBot: Wayne Zuo <wdvxdr@golangcn.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Diffstat (limited to 'src/hash')
-rw-r--r-- | src/hash/maphash/maphash.go | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/src/hash/maphash/maphash.go b/src/hash/maphash/maphash.go index 783690ea00..dfacd021db 100644 --- a/src/hash/maphash/maphash.go +++ b/src/hash/maphash/maphash.go @@ -252,21 +252,20 @@ func (h *Hash) Sum64() uint64 { // MakeSeed returns a new random seed. func MakeSeed() Seed { - var s1, s2 uint64 + var s uint64 for { - s1 = uint64(runtime_fastrand()) - s2 = uint64(runtime_fastrand()) + s = runtime_fastrand64() // We use seed 0 to indicate an uninitialized seed/hash, // so keep trying until we get a non-zero seed. - if s1|s2 != 0 { + if s != 0 { break } } - return Seed{s: s1<<32 + s2} + return Seed{s: s} } -//go:linkname runtime_fastrand runtime.fastrand -func runtime_fastrand() uint32 +//go:linkname runtime_fastrand64 runtime.fastrand64 +func runtime_fastrand64() uint64 func rthash(ptr *byte, len int, seed uint64) uint64 { if len == 0 { |