MCPcopy Index your code
hub / github.com/segmentio/encoding / decodePointer

Method decodePointer

json/decode.go:1248–1265  ·  view source on GitHub ↗
(b []byte, p unsafe.Pointer, t reflect.Type, decode decodeFunc)

Source from the content-addressed store, hash-verified

1246}
1247
1248func (d decoder) decodePointer(b []byte, p unsafe.Pointer, t reflect.Type, decode decodeFunc) ([]byte, error) {
1249 if hasNullPrefix(b) {
1250 pp := *(*unsafe.Pointer)(p)
1251 if pp != nil && t.Kind() == reflect.Ptr {
1252 return decode(d, b, pp)
1253 }
1254 *(*unsafe.Pointer)(p) = nil
1255 return b[4:], nil
1256 }
1257
1258 v := *(*unsafe.Pointer)(p)
1259 if v == nil {
1260 v = unsafe.Pointer(reflect.New(t).Pointer())
1261 *(*unsafe.Pointer)(p) = v
1262 }
1263
1264 return decode(d, b, v)
1265}
1266
1267func (d decoder) decodeInterface(b []byte, p unsafe.Pointer) ([]byte, error) {
1268 val := *(*any)(p)

Callers 1

Calls 2

hasNullPrefixFunction · 0.85
KindMethod · 0.65

Tested by

no test coverage detected