aboutsummaryrefslogtreecommitdiff
path: root/src/hash
diff options
context:
space:
mode:
authorzhangyunhao <zhangyunhao@bytedance.com>2022-04-19 14:44:03 +0800
committerKeith Randall <khr@golang.org>2022-04-21 17:46:04 +0000
commitc2d436dcfad64d5cc301cf05d446f7a93c19133e (patch)
tree6776623bf3b03cb9b6f6a840af837cc4851514ff /src/hash
parentb34838913da606087b0f3141891f7d0fb2254eef (diff)
downloadgo-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.go13
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 {