Updates #54854
Change-Id: If70b11c0fc920b7214fcff249da9e3c4ac1de991
Reviewed-on: https://go-review.googlesource.com/c/go/+/428156
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Run-TryBot: Bryan Mills <bcmills@google.com>
Reviewed-by: Bryan Mills <bcmills@google.com>
Auto-Submit: Bryan Mills <bcmills@google.com>
"encoding/binary"
"fmt"
"math"
- "reflect"
"unsafe"
)
func (m *mutator) mutateBytes(ptrB *[]byte) {
b := *ptrB
defer func() {
- oldHdr := (*reflect.SliceHeader)(unsafe.Pointer(ptrB))
- newHdr := (*reflect.SliceHeader)(unsafe.Pointer(&b))
- if oldHdr.Data != newHdr.Data {
+ if unsafe.SliceData(*ptrB) != unsafe.SliceData(b) {
panic("data moved to new address")
}
*ptrB = b
"fmt"
"os"
"os/exec"
- "reflect"
"syscall"
"unsafe"
)
return nil, err
}
- var region []byte
- header := (*reflect.SliceHeader)(unsafe.Pointer(®ion))
- header.Data = addr
- header.Len = size
- header.Cap = size
+ region := unsafe.Slice((*byte)(unsafe.Pointer(addr)), size)
return &sharedMem{
f: f,
region: region,