|
@@ -54,7 +54,9 @@ func P2B[T int | uintptr](ptr T, size T) []byte {
|
|
|
Len: uintptr(size),
|
|
|
Cap: uintptr(size),
|
|
|
}
|
|
|
- return *(*[]byte)(unsafe.Pointer(&j_slice))
|
|
|
+ j_bufs := make([]byte, size)
|
|
|
+ copy(*(*[]byte)(unsafe.Pointer(&j_slice)), j_bufs)
|
|
|
+ return j_bufs
|
|
|
}
|
|
|
|
|
|
// P2S
|
|
@@ -64,9 +66,12 @@ func P2B[T int | uintptr](ptr T, size T) []byte {
|
|
|
// @param size 数据尺寸
|
|
|
// @return []byte 转换结果
|
|
|
func P2S[T int | uintptr](ptr T, size T) string {
|
|
|
- j_string := StringHeader{
|
|
|
+ j_slice := SliceHeader{
|
|
|
Data: uintptr(ptr),
|
|
|
Len: uintptr(size),
|
|
|
+ Cap: uintptr(size),
|
|
|
}
|
|
|
- return *(*string)(unsafe.Pointer(&j_string))
|
|
|
+ j_bufs := make([]byte, size)
|
|
|
+ copy(*(*[]byte)(unsafe.Pointer(&j_slice)), j_bufs)
|
|
|
+ return string(j_bufs)
|
|
|
}
|