runtime: use unsafe.Add() in hashmap code

This commit is contained in:
Damian Gryski
2023-03-29 09:38:11 -07:00
committed by Ron Evans
parent bf20c652e2
commit 4e4e4eee04
+2 -2
View File
@@ -175,14 +175,14 @@ func hashmapBucketAddrForHash(m *hashmap, hash uint32) *hashmapBucket {
//go:inline //go:inline
func hashmapSlotKey(m *hashmap, bucket *hashmapBucket, slot uint8) unsafe.Pointer { func hashmapSlotKey(m *hashmap, bucket *hashmapBucket, slot uint8) unsafe.Pointer {
slotKeyOffset := unsafe.Sizeof(hashmapBucket{}) + uintptr(m.keySize)*uintptr(slot) slotKeyOffset := unsafe.Sizeof(hashmapBucket{}) + uintptr(m.keySize)*uintptr(slot)
slotKey := unsafe.Pointer(uintptr(unsafe.Pointer(bucket)) + slotKeyOffset) slotKey := unsafe.Add(unsafe.Pointer(bucket), slotKeyOffset)
return slotKey return slotKey
} }
//go:inline //go:inline
func hashmapSlotValue(m *hashmap, bucket *hashmapBucket, slot uint8) unsafe.Pointer { func hashmapSlotValue(m *hashmap, bucket *hashmapBucket, slot uint8) unsafe.Pointer {
slotValueOffset := unsafe.Sizeof(hashmapBucket{}) + uintptr(m.keySize)*8 + uintptr(m.valueSize)*uintptr(slot) slotValueOffset := unsafe.Sizeof(hashmapBucket{}) + uintptr(m.keySize)*8 + uintptr(m.valueSize)*uintptr(slot)
slotValue := unsafe.Pointer(uintptr(unsafe.Pointer(bucket)) + slotValueOffset) slotValue := unsafe.Add(unsafe.Pointer(bucket), slotValueOffset)
return slotValue return slotValue
} }