Commit Graph

303 Commits

Author SHA1 Message Date
Masaaki Goshima 7083274627 Fix initialize seenPtr 2020-12-20 19:08:20 +09:00
Masaaki Goshima d85327b458 Replace int/uint encoding implementation 2020-12-20 04:02:03 +09:00
Masaaki Goshima fdce754b17 Expand source for string encoding 2020-12-20 04:02:03 +09:00
Masaaki Goshima 01b439e41e Refactor buffering of encoder for improvement performance 2020-12-20 04:02:03 +09:00
Masaaki Goshima 920c79e0b7
Merge pull request #69 from goccy/feature/add-benchmark
Add github.com/segmentio/encoding/json to benchmark
2020-12-20 04:01:21 +09:00
Masaaki Goshima 7028c33e67 Add github.com/segmentio/encoding/json to benchmark 2020-12-20 03:57:24 +09:00
Masaaki Goshima 0e0bf702c1
Merge pull request #68 from goccy/feature/add-benchmark
Optimize access to opcodeMap
2020-12-15 14:55:13 +09:00
Masaaki Goshima 6eb02f7ac0 Optimize access to opcodeMap 2020-12-15 14:46:10 +09:00
Masaaki Goshima 2e411ac3f6
Merge pull request #67 from zchee/const-uintptrSize
Change uintptrSize to constant
2020-12-09 19:57:29 +09:00
Koichi Shiraishi cdac126d80
Change uintptrSize to constant 2020-12-09 19:20:51 +09:00
Masaaki Goshima 73ba04190f
Merge pull request #62 from zchee/fix-decode-checkptr
Fix checkptr validation error on decode
2020-11-23 14:51:05 +09:00
Koichi Shiraishi 2b4097577d
Pass expression to unsafe.Pointer directly 2020-11-23 14:13:45 +09:00
Koichi Shiraishi e4214835d8
Fix checkptr validation error on decode 2020-11-23 06:47:57 +09:00
Masaaki Goshima eee16e83f5
Merge pull request #61 from goccy/feature/escape-pointer-for-decoder
Fix race data for decoder
2020-11-19 16:24:44 +09:00
Masaaki Goshima ce1f865330 Remove dummy field for keeping reference of pointer 2020-11-19 12:54:43 +09:00
Masaaki Goshima fd7a72c0b8 Pass unsafe.Pointer instead of uintptr 2020-11-19 12:47:42 +09:00
Masaaki Goshima 5ab988208f
Merge pull request #60 from goccy/feature/fix-unexpected-free-pointer
Fix a bugs where pointers are unexpectedly freed
2020-11-19 03:36:56 +09:00
Masaaki Goshima 18e2d87772 Fix env settings 2020-11-19 02:26:56 +09:00
Masaaki Goshima e319a33e70 Omit test with race detector 2020-11-19 02:21:04 +09:00
Masaaki Goshima df0b68da4d Fix test option 2020-11-19 02:16:05 +09:00
Masaaki Goshima 5701138d7d Update CI settings 2020-11-19 02:12:48 +09:00
Masaaki Goshima 35395bba60 Keep unsafe.Pointer reference for handling of opInterface 2020-11-18 17:05:27 +09:00
Masaaki Goshima 6a11c84d0c Fix test case 2020-11-18 16:47:50 +09:00
Masaaki Goshima 71f8fc352b
Merge pull request #59 from goccy/feature/refactor-ptr
Refactor cast manipulation from uintptr
2020-11-17 15:19:21 +09:00
Masaaki Goshima 9802f67a9b Refactor unsupported value error for float64 2020-11-17 15:14:07 +09:00
Masaaki Goshima ea96cc7811 Refactor cast manipulation from uintptr 2020-11-17 15:09:06 +09:00
Masaaki Goshima c79cf6a3f5 Refactor error of marshaler 2020-11-17 15:08:12 +09:00
Masaaki Goshima 69ea157270 Refactor unsupported value for float64 2020-11-17 15:06:05 +09:00
Masaaki Goshima e88d0248b5
Merge pull request #52 from zchee/ci-support-multiversion
Support multiple go version
2020-11-16 23:51:37 +09:00
Koichi Shiraishi fd28e427bc
github/workflows: test also race build 2020-11-16 23:48:26 +09:00
Koichi Shiraishi 4271f208db
github/workflows: add 1.14 and 1.15 2020-11-16 23:48:26 +09:00
Koichi Shiraishi 09cf542962
github/workflows: hook also pull_request 2020-11-16 23:48:26 +09:00
Koichi Shiraishi 02e7dbb187
github/workflows: upgrade setup-go to v2 2020-11-16 23:48:26 +09:00
Masaaki Goshima 600ebf03a8
Merge pull request #58 from zchee/fix-resolve-conflict
Fix resolve conflict to #55
2020-11-16 23:47:48 +09:00
Koichi Shiraishi 96528cbae4
Fix resolve conflict to #55 2020-11-16 23:39:33 +09:00
Masaaki Goshima bfa3640e2b
Merge pull request #55 from cuonglm/cuonglm/do-not-use-reflect-SliceHeader
Make "go test -gcflags=-d=checkptr" passes
2020-11-16 22:55:17 +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 71cddb3168
Merge pull request #57 from goccy/feature/fix-anonymous-fields
Fix recursive anonymous field
2020-11-16 21:34:34 +09:00
Masaaki Goshima 3e1a1ac1ad Fix recursive anonymous field 2020-11-16 21:28:33 +09:00
Masaaki Goshima fda849e8f0
Merge pull request #56 from goccy/feature/fix-handling-of-delimiter
Fix handling of comma as delimiter
2020-11-16 21:22:11 +09:00
Masaaki Goshima 4994bc5d04 Fix handling of comma as delimiter
Conflicts:
	encode_vm.go
2020-11-16 19:16:45 +09:00
Masaaki Goshima 897345da64
Merge pull request #54 from zchee/format-opcode
Format opcode
2020-11-13 13:31:47 +09:00
Koichi Shiraishi 0f18f3fed2
Generate 2020-11-13 00:27:11 +09:00
Koichi Shiraishi 740b951cb5
cmd/generator: format output source 2020-11-13 00:25:57 +09:00
Masaaki Goshima 09fe33f8f0
Merge pull request #51 from goccy/feature/improve-performance
Improve performance of encodeEscapedString
2020-09-26 23:20:32 +09:00
Masaaki Goshima 2840955164 Improve performance of encodeEscapedString 2020-09-26 23:18:33 +09:00
Masaaki Goshima d373a4b7d7
Merge pull request #50 from goccy/feature/fix-pointer-fields
Fix encoding of pointer fields ( primitive type )
2020-09-17 21:54:03 +09:00
Masaaki Goshima 9351afdb88 Fix pointer fields 2020-09-17 21:50:27 +09:00
Masaaki Goshima 66b8cb792a Keep reference of interface value 2020-09-17 21:48:39 +09:00