Commit Graph

17 Commits

Author SHA1 Message Date
Masaaki Goshima fd7a72c0b8 Pass unsafe.Pointer instead of uintptr 2020-11-19 12:47:42 +09:00
Cuong Manh Le 6b1d701387
Fix all invalid usages of unsafe.Pointer
Most of the invalid usages due to the conversion from uintptr to
unsafe.Pointer. In general, unsafe.Pointer(p) where p of type uintptr is
considered unsafe.

To fix that, use &p instead of p, then introduce another dereference.
Example, the invalid usage:

	*(*int)(unsafe.Pointer(p)) = int(v)

wil become:

	**(**int)(unsafe.Pointer(&p)) = int(v)

Closes #53
2020-11-16 20:37:12 +07:00
Cuong Manh Le e58b1eabaf
Remove all usages of reflect.SliceHeader
There're some problem with current usage of reflect.SliceHeader.

First, it violates the unsafe pointer conversion (rule 6th), that said,
reflect.SliceHeader must not used as plain struct.

Second, the lowest version that go-json supports, go1.12, reflect
package did not use SliceHeader in typedslicecopy, but use the safety
version. There's no reason that go-json continue using them.

See:

 - https://golang.org/pkg/unsafe/#Pointer
 - https://github.com/golang/go/blob/release-branch.go1.12/src/reflect/value.go#L2702
2020-11-16 20:33:49 +07:00
Masaaki Goshima 27f6c70ab3 Fix DisallowUnknownFields 2020-08-14 17:59:49 +09:00
Masaaki Goshima ee13701278 Add Compact/Indent/HTMLEscape/Valid 2020-08-12 16:54:15 +09:00
Masaaki Goshima e112aa753e Support DisallowUnknownFields 2020-08-11 19:05:20 +09:00
Masaaki Goshima 69573d1b74 Fix null value for struct field 2020-08-08 13:20:42 +09:00
Masaaki Goshima c14253089e Fix stream decoder for slice 2020-07-31 18:52:22 +09:00
Masaaki Goshima daec57244d Merge branch 'master' of github.com:goccy/go-json into feature/support-stream-decoding 2020-07-31 18:46:54 +09:00
Masaaki Goshima 80acd42b80 Optimize streaming decoder 2020-07-31 17:10:03 +09:00
Masaaki Goshima 20b67ad48d Support Decoder.Token 2020-07-30 22:41:53 +09:00
Masaaki Goshima 48b2c82759 Fix a bug that crashes in parallel execution 2020-05-31 00:11:50 +09:00
Masaaki Goshima 4acc22e0fe Support SyntaxError 2020-05-23 12:51:09 +09:00
Masaaki Goshima bc23c32f1a Reuse slice instance for decoding 2020-05-07 21:30:36 +09:00
Masaaki Goshima f198ef6517 Remove context for decoding 2020-05-07 02:37:29 +09:00
Masaaki Goshima 9b1349d40a Fix decoder 2020-04-26 15:22:55 +09:00
Masaaki Goshima 71d6f845e5 Add decoder for Array or Slice type 2020-04-25 19:55:05 +09:00