Skip to content

Commit 4a8c838

Browse files
committed
zeroalloc: don't use unsafe.Pointer
1 parent c6114ee commit 4a8c838

File tree

1 file changed

+10
-7
lines changed

1 file changed

+10
-7
lines changed

utils/zeroalloc.go

+10-7
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,30 @@
11
package utils
22

3-
import "unsafe"
3+
import (
4+
"math"
5+
"unsafe"
6+
)
47

58
func StringToByteSlice(s string) []byte {
6-
return *(*[]byte)(unsafe.Pointer(&s))
9+
return unsafe.Slice(unsafe.StringData(s), len(s))
710
}
811

912
func ByteSliceToString(b []byte) string {
10-
return *(*string)(unsafe.Pointer(&b))
13+
return unsafe.String(unsafe.SliceData(b), len(b))
1114
}
1215

1316
func Uint64ToInt64(val uint64) int64 {
14-
return *(*int64)(unsafe.Pointer(&val))
17+
return int64(val)
1518
}
1619

1720
func Uint64ToFloat64(val uint64) float64 {
18-
return *(*float64)(unsafe.Pointer(&val))
21+
return math.Float64frombits(val)
1922
}
2023

2124
func Int64ToUint64(val int64) uint64 {
22-
return *(*uint64)(unsafe.Pointer(&val))
25+
return uint64(val)
2326
}
2427

2528
func Float64ToUint64(val float64) uint64 {
26-
return *(*uint64)(unsafe.Pointer(&val))
29+
return math.Float64bits(val)
2730
}

0 commit comments

Comments
 (0)