diff options
| author | 2021-09-10 14:42:14 +0200 | |
|---|---|---|
| committer | 2021-09-10 14:42:14 +0200 | |
| commit | f2e5bedea6fb93fbbf68ed8f7153c353cc57a9f0 (patch) | |
| tree | 475ae9e7470d0df670ab2a59dce351cd1d07498a /vendor/github.com/goccy/go-json/decode_ptr.go | |
| parent | fixes + db changes (#204) (diff) | |
| download | gotosocial-f2e5bedea6fb93fbbf68ed8f7153c353cc57a9f0.tar.xz | |
migrate go version to 1.17 (#203)
* migrate go version to 1.17
* update contributing
Diffstat (limited to 'vendor/github.com/goccy/go-json/decode_ptr.go')
| -rw-r--r-- | vendor/github.com/goccy/go-json/decode_ptr.go | 85 |
1 files changed, 0 insertions, 85 deletions
diff --git a/vendor/github.com/goccy/go-json/decode_ptr.go b/vendor/github.com/goccy/go-json/decode_ptr.go deleted file mode 100644 index 40997c59f..000000000 --- a/vendor/github.com/goccy/go-json/decode_ptr.go +++ /dev/null @@ -1,85 +0,0 @@ -package json - -import ( - "unsafe" -) - -type ptrDecoder struct { - dec decoder - typ *rtype - structName string - fieldName string -} - -func newPtrDecoder(dec decoder, typ *rtype, structName, fieldName string) *ptrDecoder { - return &ptrDecoder{ - dec: dec, - typ: typ, - structName: structName, - fieldName: fieldName, - } -} - -func (d *ptrDecoder) contentDecoder() decoder { - dec, ok := d.dec.(*ptrDecoder) - if !ok { - return d.dec - } - return dec.contentDecoder() -} - -//nolint:golint -//go:linkname unsafe_New reflect.unsafe_New -func unsafe_New(*rtype) unsafe.Pointer - -func (d *ptrDecoder) decodeStream(s *stream, depth int64, p unsafe.Pointer) error { - s.skipWhiteSpace() - if s.char() == nul { - s.read() - } - if s.char() == 'n' { - if err := nullBytes(s); err != nil { - return err - } - *(*unsafe.Pointer)(p) = nil - return nil - } - var newptr unsafe.Pointer - if *(*unsafe.Pointer)(p) == nil { - newptr = unsafe_New(d.typ) - *(*unsafe.Pointer)(p) = newptr - } else { - newptr = *(*unsafe.Pointer)(p) - } - if err := d.dec.decodeStream(s, depth, newptr); err != nil { - return err - } - return nil -} - -func (d *ptrDecoder) decode(buf []byte, cursor, depth int64, p unsafe.Pointer) (int64, error) { - cursor = skipWhiteSpace(buf, cursor) - if buf[cursor] == 'n' { - if err := validateNull(buf, cursor); err != nil { - return 0, err - } - if p != nil { - *(*unsafe.Pointer)(p) = nil - } - cursor += 4 - return cursor, nil - } - var newptr unsafe.Pointer - if *(*unsafe.Pointer)(p) == nil { - newptr = unsafe_New(d.typ) - *(*unsafe.Pointer)(p) = newptr - } else { - newptr = *(*unsafe.Pointer)(p) - } - c, err := d.dec.decode(buf, cursor, depth, newptr) - if err != nil { - return 0, err - } - cursor = c - return cursor, nil -} |
