mirror of
https://github.com/golang/go
synced 2024-11-22 20:04:47 -07:00
hash/maphash: simplify pointer size checks
Use internal/goarch.PtrSize, instead of unsafe.Sizeof(uintptr(0)). Change-Id: If501ae9853ed384c4b9485e2c3b0aeba03c17685 Reviewed-on: https://go-review.googlesource.com/c/go/+/630795 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Ian Lance Taylor <iant@google.com> Auto-Submit: Cherry Mui <cherryyz@google.com>
This commit is contained in:
parent
efe0a86551
commit
a1d62aa475
@ -8,6 +8,7 @@ package maphash
|
||||
|
||||
import (
|
||||
"internal/abi"
|
||||
"internal/goarch"
|
||||
"internal/goexperiment"
|
||||
"unsafe"
|
||||
)
|
||||
@ -27,7 +28,7 @@ func rthash(buf []byte, seed uint64) uint64 {
|
||||
// The runtime hasher only works on uintptr. For 64-bit
|
||||
// architectures, we use the hasher directly. Otherwise,
|
||||
// we use two parallel hashers on the lower and upper 32 bits.
|
||||
if unsafe.Sizeof(uintptr(0)) == 8 {
|
||||
if goarch.PtrSize == 8 {
|
||||
return uint64(runtime_memhash(unsafe.Pointer(&buf[0]), uintptr(seed), uintptr(len)))
|
||||
}
|
||||
lo := runtime_memhash(unsafe.Pointer(&buf[0]), uintptr(seed), uintptr(len))
|
||||
@ -54,7 +55,7 @@ func comparableHash[T comparable](v T, seed Seed) uint64 {
|
||||
} else {
|
||||
hasher = (*abi.OldMapType)(unsafe.Pointer(mTyp)).Hasher
|
||||
}
|
||||
if unsafe.Sizeof(uintptr(0)) == 8 {
|
||||
if goarch.PtrSize == 8 {
|
||||
return uint64(hasher(abi.NoEscape(unsafe.Pointer(&v)), uintptr(s)))
|
||||
}
|
||||
lo := hasher(abi.NoEscape(unsafe.Pointer(&v)), uintptr(s))
|
||||
|
Loading…
Reference in New Issue
Block a user