From a1d62aa475d163e97c416dd601fbf9ca996a8e47 Mon Sep 17 00:00:00 2001 From: Cherry Mui Date: Thu, 21 Nov 2024 15:42:48 -0500 Subject: [PATCH] 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 --- src/hash/maphash/maphash_runtime.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/hash/maphash/maphash_runtime.go b/src/hash/maphash/maphash_runtime.go index 049aa6281d8..3f049a99243 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))