MCPcopy
hub / github.com/uptrace/uptrace / decodeEmbeddedStructPointer

Method decodeEmbeddedStructPointer

pkg/msgp/decoder.go:403–413  ·  view source on GitHub ↗
(b []byte, p unsafe.Pointer, t reflect.Type, unexported bool, offset uintptr, decode decodeFunc)

Source from the content-addressed store, hash-verified

401 }
402}
403func (d decoder) decodeEmbeddedStructPointer(b []byte, p unsafe.Pointer, t reflect.Type, unexported bool, offset uintptr, decode decodeFunc) ([]byte, error) {
404 v := *(*unsafe.Pointer)(p)
405 if v == nil {
406 if unexported {
407 return nil, fmt.Errorf("msgp: cannot set embedded pointer to unexported struct: %s", t)
408 }
409 v = unsafe.Pointer(reflect.New(t).Pointer())
410 *(*unsafe.Pointer)(p) = v
411 }
412 return decode(d, b, unsafe.Pointer(uintptr(v)+offset))
413}
414func (d decoder) decodePointer(b []byte, p unsafe.Pointer, t reflect.Type, decode decodeFunc) ([]byte, error) {
415 if hasNilCode(b) {
416 pp := *(*unsafe.Pointer)(p)

Callers 1

Calls 1

PointerMethod · 0.80

Tested by

no test coverage detected