lib/fs: use unsafe.Slice instead of deprecated reflect.SliceHeader

This commit is contained in:
Aliaksandr Valialkin 2024-02-29 17:18:33 +02:00
parent 7a04f99c72
commit f8baf29b6e
No known key found for this signature in database
GPG key ID: 52C003EE2BCDB9EB

View file

@ -89,11 +89,7 @@ func mmap(fd int, length int) ([]byte, error) {
windows.CloseHandle(h)
return nil, os.NewSyscallError("MapViewOfFile", errno)
}
data := make([]byte, 0)
hdr := (*reflect.SliceHeader)(unsafe.Pointer(&data))
hdr.Data = addr
hdr.Len = length
hdr.Cap = hdr.Len
data := unsafe.Slice(addr, length)
mmapByAddrLock.Lock()
mmapByAddr[addr] = h
@ -105,8 +101,7 @@ func mmap(fd int, length int) ([]byte, error) {
func mUnmap(data []byte) error {
// flush is not needed, since we perform only reading operation.
// In case of write, additional call FlushViewOfFile must be performed.
header := (*reflect.SliceHeader)(unsafe.Pointer(&data))
addr := header.Data
addr := uintptr(unsafe.Pointer(&data[0]))
mmapByAddrLock.Lock()
h, ok := mmapByAddr[addr]