summaryrefslogtreecommitdiff
path: root/vendor/github.com/bytedance/sonic/internal/decoder
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/bytedance/sonic/internal/decoder')
-rw-r--r--vendor/github.com/bytedance/sonic/internal/decoder/api/decoder_amd64.go4
-rw-r--r--vendor/github.com/bytedance/sonic/internal/decoder/api/decoder_arm64.go2
-rw-r--r--vendor/github.com/bytedance/sonic/internal/decoder/api/stream.go22
-rw-r--r--vendor/github.com/bytedance/sonic/internal/decoder/jitdec/asm_stubs_amd64_go121.go2
-rw-r--r--vendor/github.com/bytedance/sonic/internal/decoder/jitdec/assembler_regabi_amd64.go17
-rw-r--r--vendor/github.com/bytedance/sonic/internal/decoder/jitdec/generic_regabi_amd64.go2
-rw-r--r--vendor/github.com/bytedance/sonic/internal/decoder/jitdec/generic_regabi_amd64_test.s2
-rw-r--r--vendor/github.com/bytedance/sonic/internal/decoder/optdec/helper.go17
8 files changed, 31 insertions, 37 deletions
diff --git a/vendor/github.com/bytedance/sonic/internal/decoder/api/decoder_amd64.go b/vendor/github.com/bytedance/sonic/internal/decoder/api/decoder_amd64.go
index 551b35b1b..4e7f46fa6 100644
--- a/vendor/github.com/bytedance/sonic/internal/decoder/api/decoder_amd64.go
+++ b/vendor/github.com/bytedance/sonic/internal/decoder/api/decoder_amd64.go
@@ -1,5 +1,5 @@
-//go:build go1.17 && !go1.25
-// +build go1.17,!go1.25
+//go:build go1.17 && !go1.26
+// +build go1.17,!go1.26
/*
* Copyright 2021 ByteDance Inc.
diff --git a/vendor/github.com/bytedance/sonic/internal/decoder/api/decoder_arm64.go b/vendor/github.com/bytedance/sonic/internal/decoder/api/decoder_arm64.go
index a56e1579d..5a7d44de1 100644
--- a/vendor/github.com/bytedance/sonic/internal/decoder/api/decoder_arm64.go
+++ b/vendor/github.com/bytedance/sonic/internal/decoder/api/decoder_arm64.go
@@ -1,4 +1,4 @@
-// +build go1.17,!go1.25
+// +build go1.17,!go1.26
/*
* Copyright 2021 ByteDance Inc.
diff --git a/vendor/github.com/bytedance/sonic/internal/decoder/api/stream.go b/vendor/github.com/bytedance/sonic/internal/decoder/api/stream.go
index ecf120462..d0ee97511 100644
--- a/vendor/github.com/bytedance/sonic/internal/decoder/api/stream.go
+++ b/vendor/github.com/bytedance/sonic/internal/decoder/api/stream.go
@@ -17,14 +17,15 @@
package api
import (
- `bytes`
- `io`
- `sync`
-
- `github.com/bytedance/sonic/internal/native`
- `github.com/bytedance/sonic/internal/native/types`
- `github.com/bytedance/sonic/internal/rt`
- `github.com/bytedance/sonic/option`
+ "bytes"
+ "io"
+ "sync"
+
+ "github.com/bytedance/sonic/internal/native"
+ "github.com/bytedance/sonic/internal/native/types"
+ "github.com/bytedance/sonic/internal/rt"
+ "github.com/bytedance/sonic/internal/utils"
+ "github.com/bytedance/sonic/option"
)
var (
@@ -194,7 +195,7 @@ func (self *StreamDecoder) peek() (byte, error) {
func (self *StreamDecoder) scan() (byte, bool) {
for i := self.scanp; i < len(self.buf); i++ {
c := self.buf[i]
- if isSpace(c) {
+ if utils.IsSpace(c) {
continue
}
self.scanp = i
@@ -203,9 +204,6 @@ func (self *StreamDecoder) scan() (byte, bool) {
return 0, true
}
-func isSpace(c byte) bool {
- return types.SPACE_MASK & (1 << c) != 0
-}
func (self *StreamDecoder) refill() error {
// Make room to read more into the buffer.
diff --git a/vendor/github.com/bytedance/sonic/internal/decoder/jitdec/asm_stubs_amd64_go121.go b/vendor/github.com/bytedance/sonic/internal/decoder/jitdec/asm_stubs_amd64_go121.go
index d6101b2e6..5cd3750bf 100644
--- a/vendor/github.com/bytedance/sonic/internal/decoder/jitdec/asm_stubs_amd64_go121.go
+++ b/vendor/github.com/bytedance/sonic/internal/decoder/jitdec/asm_stubs_amd64_go121.go
@@ -1,4 +1,4 @@
-// +build go1.21,!go1.25
+// +build go1.21,!go1.26
// Copyright 2023 CloudWeGo Authors
//
diff --git a/vendor/github.com/bytedance/sonic/internal/decoder/jitdec/assembler_regabi_amd64.go b/vendor/github.com/bytedance/sonic/internal/decoder/jitdec/assembler_regabi_amd64.go
index 20c115e79..dc86efe08 100644
--- a/vendor/github.com/bytedance/sonic/internal/decoder/jitdec/assembler_regabi_amd64.go
+++ b/vendor/github.com/bytedance/sonic/internal/decoder/jitdec/assembler_regabi_amd64.go
@@ -1,5 +1,5 @@
-//go:build go1.17 && !go1.25
-// +build go1.17,!go1.25
+//go:build go1.17 && !go1.26
+// +build go1.17,!go1.26
/*
* Copyright 2021 ByteDance Inc.
@@ -887,6 +887,17 @@ func (self *_Assembler) range_unsigned_CX(i *rt.GoItab, t *rt.GoType, v uint64)
self.Sjmp("JA" , _LB_range_error) // JA _range_error
}
+func (self *_Assembler) range_uint32_CX(i *rt.GoItab, t *rt.GoType) {
+ self.Emit("MOVQ" , _VAR_st_Iv, _CX) // MOVQ st.Iv, CX
+ self.Emit("MOVQ" , jit.Gitab(i), _ET) // MOVQ ${i}, ET
+ self.Emit("MOVQ" , jit.Gtype(t), _EP) // MOVQ ${t}, EP
+ self.Emit("TESTQ", _CX, _CX) // TESTQ CX, CX
+ self.Sjmp("JS" , _LB_range_error) // JS _range_error
+ self.Emit("MOVL" , _CX, _DX) // MOVL CX, DX
+ self.Emit("CMPQ" , _CX, _DX) // CMPQ CX, DX
+ self.Sjmp("JNE" , _LB_range_error) // JNZ _range_error
+}
+
/** String Manipulating Routines **/
var (
@@ -1453,7 +1464,7 @@ func (self *_Assembler) _asm_OP_u16(_ *_Instr) {
func (self *_Assembler) _asm_OP_u32(_ *_Instr) {
var pin = "_u32_end_{n}"
self.parse_unsigned(uint32Type, pin, -1) // PARSE uint32
- self.range_unsigned_CX(_I_uint32, _T_uint32, math.MaxUint32) // RANGE uint32
+ self.range_uint32_CX(_I_uint32, _T_uint32) // RANGE uint32
self.Emit("MOVL", _CX, jit.Ptr(_VP, 0)) // MOVL CX, (VP)
self.Link(pin)
}
diff --git a/vendor/github.com/bytedance/sonic/internal/decoder/jitdec/generic_regabi_amd64.go b/vendor/github.com/bytedance/sonic/internal/decoder/jitdec/generic_regabi_amd64.go
index 51a850a8a..2cb41f08d 100644
--- a/vendor/github.com/bytedance/sonic/internal/decoder/jitdec/generic_regabi_amd64.go
+++ b/vendor/github.com/bytedance/sonic/internal/decoder/jitdec/generic_regabi_amd64.go
@@ -1,4 +1,4 @@
-// +build go1.17,!go1.25
+// +build go1.17,!go1.26
/*
* Copyright 2021 ByteDance Inc.
diff --git a/vendor/github.com/bytedance/sonic/internal/decoder/jitdec/generic_regabi_amd64_test.s b/vendor/github.com/bytedance/sonic/internal/decoder/jitdec/generic_regabi_amd64_test.s
index f287eaeb4..a08f0e2ad 100644
--- a/vendor/github.com/bytedance/sonic/internal/decoder/jitdec/generic_regabi_amd64_test.s
+++ b/vendor/github.com/bytedance/sonic/internal/decoder/jitdec/generic_regabi_amd64_test.s
@@ -1,4 +1,4 @@
-// +build go1.17,!go1.25
+// +build go1.17,!go1.26
//
// Copyright 2021 ByteDance Inc.
diff --git a/vendor/github.com/bytedance/sonic/internal/decoder/optdec/helper.go b/vendor/github.com/bytedance/sonic/internal/decoder/optdec/helper.go
index 61faa6c80..0683f45ae 100644
--- a/vendor/github.com/bytedance/sonic/internal/decoder/optdec/helper.go
+++ b/vendor/github.com/bytedance/sonic/internal/decoder/optdec/helper.go
@@ -28,11 +28,6 @@ func SkipNumberFast(json string, start int) (int, bool) {
return pos, true
}
-
-func isSpace(c byte) bool {
- return c == ' ' || c == '\t' || c == '\n' || c == '\r'
-}
-
// pos is the start index of the raw
func ValidNumberFast(raw string) bool {
ret := utils.SkipNumber(raw, 0)
@@ -48,22 +43,12 @@ func ValidNumberFast(raw string) bool {
return true
}
-func SkipOneFast2(json string, pos *int) (int, error) {
- // find the number ending, we parsed in sonic-cpp, it always valid
- start := native.SkipOneFast(&json, pos)
- if start < 0 {
- return -1, error_syntax(*pos, json, types.ParsingError(-start).Error())
- }
- return start, nil
-}
-
func SkipOneFast(json string, pos int) (string, error) {
- // find the number ending, we parsed in sonic-cpp, it always valid
start := native.SkipOneFast(&json, &pos)
if start < 0 {
- // TODO: details error code
return "", error_syntax(pos, json, types.ParsingError(-start).Error())
}
+
return json[start:pos], nil
}