From d2db2372a2fd79d539719fa13422d83d6fdfcda1 Mon Sep 17 00:00:00 2001 From: Cherry Mui Date: Wed, 21 May 2025 22:50:09 -0400 Subject: [PATCH] hash/maphash: move purego-only helper functions to build tagged file Hash.float64 and btoi helper functions are used only in the purego version. Move them to the build tagged file. Change-Id: I57f9a48966573ab0aee1de759eeddd2331967870 Reviewed-on: https://go-review.googlesource.com/c/go/+/675158 Reviewed-by: David Chase LUCI-TryBot-Result: Go LUCI --- src/hash/maphash/maphash.go | 24 ------------------------ src/hash/maphash/maphash_purego.go | 23 +++++++++++++++++++++++ 2 files changed, 23 insertions(+), 24 deletions(-) diff --git a/src/hash/maphash/maphash.go b/src/hash/maphash/maphash.go index d328cd3929..c6f3e62b5d 100644 --- a/src/hash/maphash/maphash.go +++ b/src/hash/maphash/maphash.go @@ -15,8 +15,6 @@ package maphash import ( "hash" "internal/abi" - "internal/byteorder" - "math" ) // A Seed is a random value that selects the specific hash function @@ -310,25 +308,3 @@ func WriteComparable[T comparable](h *Hash, x T) { } writeComparable(h, x) } - -func (h *Hash) float64(f float64) { - if f == 0 { - h.WriteByte(0) - return - } - var buf [8]byte - if f != f { - byteorder.LEPutUint64(buf[:], randUint64()) - h.Write(buf[:]) - return - } - byteorder.LEPutUint64(buf[:], math.Float64bits(f)) - h.Write(buf[:]) -} - -func btoi(b bool) byte { - if b { - return 1 - } - return 0 -} diff --git a/src/hash/maphash/maphash_purego.go b/src/hash/maphash/maphash_purego.go index 07b5eaa460..e286c5a5aa 100644 --- a/src/hash/maphash/maphash_purego.go +++ b/src/hash/maphash/maphash_purego.go @@ -10,6 +10,7 @@ import ( "crypto/rand" "errors" "internal/byteorder" + "math" "math/bits" "reflect" ) @@ -175,3 +176,25 @@ func appendT(h *Hash, v reflect.Value) { } panic(errors.New("maphash: hash of unhashable type " + v.Type().String())) } + +func (h *Hash) float64(f float64) { + if f == 0 { + h.WriteByte(0) + return + } + var buf [8]byte + if f != f { + byteorder.LEPutUint64(buf[:], randUint64()) + h.Write(buf[:]) + return + } + byteorder.LEPutUint64(buf[:], math.Float64bits(f)) + h.Write(buf[:]) +} + +func btoi(b bool) byte { + if b { + return 1 + } + return 0 +}