From: Cherry Mui Date: Thu, 21 Nov 2024 20:42:48 +0000 (-0500) Subject: hash/maphash: simplify pointer size checks X-Git-Tag: go1.24rc1~135 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=a1d62aa475d163e97c416dd601fbf9ca996a8e47;p=gostls13.git 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 Reviewed-by: Ian Lance Taylor Auto-Submit: Cherry Mui --- diff --git a/src/hash/maphash/maphash_runtime.go b/src/hash/maphash/maphash_runtime.go index 049aa6281d..3f049a9924 100644 --- a/src/hash/maphash/maphash_runtime.go +++ b/src/hash/maphash/maphash_runtime.go @@ -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))