mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-11-04 05:32:26 -06:00 
			
		
		
		
	[chore]: Bump github.com/gin-contrib/gzip from 1.0.1 to 1.1.0 (#3639)
Bumps [github.com/gin-contrib/gzip](https://github.com/gin-contrib/gzip) from 1.0.1 to 1.1.0. - [Release notes](https://github.com/gin-contrib/gzip/releases) - [Changelog](https://github.com/gin-contrib/gzip/blob/master/.goreleaser.yaml) - [Commits](https://github.com/gin-contrib/gzip/compare/v1.0.1...v1.1.0) --- updated-dependencies: - dependency-name: github.com/gin-contrib/gzip dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This commit is contained in:
		
					parent
					
						
							
								8cfae010a9
							
						
					
				
			
			
				commit
				
					
						4d423102c1
					
				
			
		
					 519 changed files with 156968 additions and 132058 deletions
				
			
		
							
								
								
									
										41
									
								
								vendor/github.com/bytedance/sonic/internal/rt/asm_amd64.s
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										41
									
								
								vendor/github.com/bytedance/sonic/internal/rt/asm_amd64.s
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -1,4 +1,5 @@
 | 
			
		|||
// +build !noasm,amd64 !appengine,amd64
 | 
			
		||||
// Code generated by asm2asm, DO NOT EDIT·
 | 
			
		||||
 | 
			
		||||
#include "go_asm.h"
 | 
			
		||||
#include "funcdata.h"
 | 
			
		||||
| 
						 | 
				
			
			@ -17,43 +18,3 @@ _entry:
 | 
			
		|||
_stack_grow:
 | 
			
		||||
    CALL runtime·morestack_noctxt<>(SB)
 | 
			
		||||
    JMP  _entry
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
TEXT ·StopProf(SB), NOSPLIT, $0-0
 | 
			
		||||
    NO_LOCAL_POINTERS
 | 
			
		||||
    CMPB github·com∕bytedance∕sonic∕internal∕rt·StopProfiling(SB), $0
 | 
			
		||||
    JEQ  _ret_1
 | 
			
		||||
    MOVL $1, AX
 | 
			
		||||
    LEAQ github·com∕bytedance∕sonic∕internal∕rt·yieldCount(SB), CX
 | 
			
		||||
    LOCK
 | 
			
		||||
    XADDL AX, (CX)
 | 
			
		||||
    MOVL runtime·prof+4(SB), AX
 | 
			
		||||
    TESTL AX, AX
 | 
			
		||||
    JEQ _ret_1
 | 
			
		||||
    MOVL AX, github·com∕bytedance∕sonic∕internal∕rt·oldHz(SB)
 | 
			
		||||
    MOVL $0, runtime·prof+4(SB)
 | 
			
		||||
_ret_1:
 | 
			
		||||
    RET
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
TEXT ·StartProf(SB), NOSPLIT, $0-0
 | 
			
		||||
    NO_LOCAL_POINTERS
 | 
			
		||||
    CMPB github·com∕bytedance∕sonic∕internal∕rt·StopProfiling(SB), $0
 | 
			
		||||
    JEQ  _ret_2
 | 
			
		||||
    MOVL $-1, AX
 | 
			
		||||
    LEAQ github·com∕bytedance∕sonic∕internal∕rt·yieldCount(SB), CX
 | 
			
		||||
    LOCK
 | 
			
		||||
    XADDL AX, (CX)
 | 
			
		||||
    CMPL github·com∕bytedance∕sonic∕internal∕rt·yieldCount(SB), $0
 | 
			
		||||
    JNE _ret_2
 | 
			
		||||
    CMPL runtime·prof+4(SB), $0
 | 
			
		||||
    JNE _ret_2
 | 
			
		||||
    CMPL github·com∕bytedance∕sonic∕internal∕rt·oldHz(SB), $0
 | 
			
		||||
    JNE _branch_1
 | 
			
		||||
    MOVL $100, github·com∕bytedance∕sonic∕internal∕rt·oldHz(SB)
 | 
			
		||||
_branch_1:
 | 
			
		||||
    MOVL github·com∕bytedance∕sonic∕internal∕rt·oldHz(SB), AX
 | 
			
		||||
    MOVL AX, runtime·prof+4(SB)
 | 
			
		||||
_ret_2:
 | 
			
		||||
    RET
 | 
			
		||||
    
 | 
			
		||||
							
								
								
									
										1
									
								
								vendor/github.com/bytedance/sonic/internal/rt/asm_compat.s
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								vendor/github.com/bytedance/sonic/internal/rt/asm_compat.s
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -1,4 +1,5 @@
 | 
			
		|||
// +build !noasm,!amd64 !appengine,!amd64
 | 
			
		||||
// Code generated by asm2asm, DO NOT EDIT.
 | 
			
		||||
 | 
			
		||||
#include "go_asm.h"
 | 
			
		||||
#include "funcdata.h"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										42
									
								
								vendor/github.com/bytedance/sonic/internal/rt/assertI2I.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								vendor/github.com/bytedance/sonic/internal/rt/assertI2I.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,42 @@
 | 
			
		|||
// +build go1.17
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2021 ByteDance Inc.
 | 
			
		||||
 *
 | 
			
		||||
 * Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
 * you may not use this file except in compliance with the License.
 | 
			
		||||
 * You may obtain a copy of the License at
 | 
			
		||||
 *
 | 
			
		||||
 *     http://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
 *
 | 
			
		||||
 * Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
 * distributed under the License is distributed on an "AS IS" BASIS,
 | 
			
		||||
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
 * See the License for the specific language governing permissions and
 | 
			
		||||
 * limitations under the License.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
package rt
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
    _ `unsafe`
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func AssertI2I(t *GoType, i GoIface) (r GoIface) {
 | 
			
		||||
    inter := IfaceType(t)
 | 
			
		||||
	tab := i.Itab
 | 
			
		||||
	if tab == nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	if (*GoInterfaceType)(tab.it) != inter {
 | 
			
		||||
		tab = GetItab(inter, tab.Vt, true)
 | 
			
		||||
		if tab == nil {
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	r.Itab = tab
 | 
			
		||||
	r.Value = i.Value
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										20
									
								
								vendor/github.com/bytedance/sonic/internal/rt/base64_amd64.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								vendor/github.com/bytedance/sonic/internal/rt/base64_amd64.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,20 @@
 | 
			
		|||
// +build amd64,go1.17,!go1.24
 | 
			
		||||
 | 
			
		||||
package rt
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"github.com/cloudwego/base64x"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func DecodeBase64(raw []byte) ([]byte, error) {
 | 
			
		||||
	ret := make([]byte, base64x.StdEncoding.DecodedLen(len(raw)))
 | 
			
		||||
	n, err := base64x.StdEncoding.Decode(ret, raw)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return ret[:n], nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func EncodeBase64(src []byte) string {
 | 
			
		||||
    return base64x.StdEncoding.EncodeToString(src)
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										20
									
								
								vendor/github.com/bytedance/sonic/internal/rt/base64_compat.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								vendor/github.com/bytedance/sonic/internal/rt/base64_compat.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,20 @@
 | 
			
		|||
// +build !amd64 !go1.17 go1.24
 | 
			
		||||
 | 
			
		||||
package rt
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"encoding/base64"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func DecodeBase64(raw []byte) ([]byte, error) {
 | 
			
		||||
	ret := make([]byte, base64.StdEncoding.DecodedLen(len(raw)))
 | 
			
		||||
	n, err := base64.StdEncoding.Decode(ret, raw)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return ret[:n], nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func EncodeBase64(src []byte) string {
 | 
			
		||||
    return base64.StdEncoding.EncodeToString(src)
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										175
									
								
								vendor/github.com/bytedance/sonic/internal/rt/fastconv.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										175
									
								
								vendor/github.com/bytedance/sonic/internal/rt/fastconv.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,175 @@
 | 
			
		|||
package rt
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"unsafe"
 | 
			
		||||
	"encoding/json"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Copied from Golang
 | 
			
		||||
var staticuint64s = [...]uint64{
 | 
			
		||||
	0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
 | 
			
		||||
	0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
 | 
			
		||||
	0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
 | 
			
		||||
	0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
 | 
			
		||||
	0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
 | 
			
		||||
	0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
 | 
			
		||||
	0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
 | 
			
		||||
	0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
 | 
			
		||||
	0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
 | 
			
		||||
	0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
 | 
			
		||||
	0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
 | 
			
		||||
	0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
 | 
			
		||||
	0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
 | 
			
		||||
	0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
 | 
			
		||||
	0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
 | 
			
		||||
	0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
 | 
			
		||||
	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
 | 
			
		||||
	0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
 | 
			
		||||
	0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
 | 
			
		||||
	0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
 | 
			
		||||
	0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
 | 
			
		||||
	0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
 | 
			
		||||
	0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
 | 
			
		||||
	0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
 | 
			
		||||
	0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
 | 
			
		||||
	0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
 | 
			
		||||
	0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
 | 
			
		||||
	0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
 | 
			
		||||
	0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
 | 
			
		||||
	0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
 | 
			
		||||
	0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
 | 
			
		||||
	0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const maxZero = 1024 // must match value in reflect/value.go:maxZero cmd/compile/internal/gc/walk.go:zeroValSize
 | 
			
		||||
var zeroVal [maxZero]byte
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
type TslicePool struct {
 | 
			
		||||
	pool   []GoSlice
 | 
			
		||||
	index  int
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func NewTslicePool (hint int) TslicePool {
 | 
			
		||||
	return TslicePool{
 | 
			
		||||
		pool:  make([]GoSlice, hint, hint),
 | 
			
		||||
		index: 0,
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (self *TslicePool) Conv(val GoSlice, typ *GoType, ep *interface{}) {
 | 
			
		||||
	var vp unsafe.Pointer
 | 
			
		||||
 | 
			
		||||
	if ((*GoSlice)(unsafe.Pointer(&val))).Ptr == nil {
 | 
			
		||||
		vp = unsafe.Pointer(&zeroVal[0])
 | 
			
		||||
	} else if self.index < len(self.pool) {
 | 
			
		||||
		dst := &(self.pool)[self.index]
 | 
			
		||||
		*dst = val
 | 
			
		||||
		self.index++
 | 
			
		||||
		vp = unsafe.Pointer(dst)
 | 
			
		||||
	} else {
 | 
			
		||||
		vp = Mallocgc(unsafe.Sizeof(val), BytesType, true)
 | 
			
		||||
	}
 | 
			
		||||
	*((*GoEface)(unsafe.Pointer(ep))) = GoEface{Type: typ, Value: vp}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (self *TslicePool) Free()  {
 | 
			
		||||
	self.pool = nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type TstringPool struct {
 | 
			
		||||
	pool  []string
 | 
			
		||||
	index int
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func NewTstringPool (hint int) TstringPool {
 | 
			
		||||
	return TstringPool{
 | 
			
		||||
		pool: make([]string, hint),
 | 
			
		||||
		index: 0,
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (self *TstringPool) Conv(val string, ep *interface{}) {
 | 
			
		||||
	var vp unsafe.Pointer
 | 
			
		||||
	if val == "" {
 | 
			
		||||
		vp = unsafe.Pointer(&zeroVal[0])
 | 
			
		||||
	} else if self.index < len(self.pool) {
 | 
			
		||||
		dst := &(self.pool)[self.index]
 | 
			
		||||
		*dst = val
 | 
			
		||||
		self.index++
 | 
			
		||||
		vp = unsafe.Pointer(dst)
 | 
			
		||||
	} else {
 | 
			
		||||
		vp = Mallocgc(unsafe.Sizeof(val), StringType, true)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// convert into interface{}
 | 
			
		||||
	*((*GoEface)(unsafe.Pointer(ep))) = GoEface{Type: StringType, Value: vp}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
func (self *TstringPool) ConvNum(val json.Number, ep *interface{}) {
 | 
			
		||||
	var vp unsafe.Pointer
 | 
			
		||||
	if val == "" {
 | 
			
		||||
		vp = unsafe.Pointer(&zeroVal[0])
 | 
			
		||||
	} else if self.index < len(self.pool) {
 | 
			
		||||
		dst := &(self.pool)[self.index]
 | 
			
		||||
		*dst = string(val)
 | 
			
		||||
		self.index++
 | 
			
		||||
		vp = unsafe.Pointer(dst)
 | 
			
		||||
	} else {
 | 
			
		||||
		vp = Mallocgc(unsafe.Sizeof(val), StringType, true)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// convert into interface{}
 | 
			
		||||
	*((*GoEface)(unsafe.Pointer(ep))) = GoEface{Type: JsonNumberType, Value: vp}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
func (self *TstringPool) Free()  {
 | 
			
		||||
	self.pool = nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type T64Pool struct {
 | 
			
		||||
	pool  []uint64
 | 
			
		||||
	index int
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func NewT64Pool (hint int) T64Pool {
 | 
			
		||||
	return T64Pool{
 | 
			
		||||
		pool: make([]uint64, hint, hint),
 | 
			
		||||
		index: 0,
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (self *T64Pool) Conv(val uint64, typ *GoType, ep *interface{}) {
 | 
			
		||||
	var vp unsafe.Pointer
 | 
			
		||||
	if val < uint64(len(staticuint64s)) {
 | 
			
		||||
		vp = unsafe.Pointer(&staticuint64s[val])
 | 
			
		||||
	} else if self.index < len(self.pool) {
 | 
			
		||||
		dst := &(self.pool)[self.index]
 | 
			
		||||
		*dst = val
 | 
			
		||||
		self.index++
 | 
			
		||||
		vp = unsafe.Pointer(dst)
 | 
			
		||||
	} else {
 | 
			
		||||
		vp = Mallocgc(8, Uint64Type, false)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// convert into interface{}
 | 
			
		||||
	*((*GoEface)(unsafe.Pointer(ep))) = GoEface{Type: typ, Value: vp}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (self *T64Pool) Free()  {
 | 
			
		||||
	self.pool = nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func ConvTBool(val bool, ep *interface{}) {
 | 
			
		||||
	var vp unsafe.Pointer
 | 
			
		||||
	if val {
 | 
			
		||||
		vp = unsafe.Pointer(&staticuint64s[1])
 | 
			
		||||
	} else {
 | 
			
		||||
		vp = unsafe.Pointer(&staticuint64s[0])
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	*((*GoEface)(unsafe.Pointer(ep))) = GoEface{Type: BoolType, Value: vp}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										36
									
								
								vendor/github.com/bytedance/sonic/internal/rt/fastmem.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										36
									
								
								vendor/github.com/bytedance/sonic/internal/rt/fastmem.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -17,8 +17,10 @@
 | 
			
		|||
package rt
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
    `unsafe`
 | 
			
		||||
    `reflect`
 | 
			
		||||
	"reflect"
 | 
			
		||||
	"unsafe"
 | 
			
		||||
 | 
			
		||||
	"github.com/bytedance/sonic/option"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
//go:nosplit
 | 
			
		||||
| 
						 | 
				
			
			@ -90,6 +92,21 @@ func GuardSlice(buf *[]byte, n int) {
 | 
			
		|||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func GuardSlice2(buf []byte, n int) []byte {
 | 
			
		||||
	c := cap(buf)
 | 
			
		||||
	l := len(buf)
 | 
			
		||||
	if c-l < n {
 | 
			
		||||
		c = c>>1 + n + l
 | 
			
		||||
		if c < 32 {
 | 
			
		||||
			c = 32
 | 
			
		||||
		}
 | 
			
		||||
		tmp := make([]byte, l, c)
 | 
			
		||||
		copy(tmp, buf)
 | 
			
		||||
		buf = tmp
 | 
			
		||||
	}
 | 
			
		||||
    return buf
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//go:nosplit
 | 
			
		||||
func Ptr2SlicePtr(s unsafe.Pointer, l int, c int) unsafe.Pointer {
 | 
			
		||||
    slice := &GoSlice{
 | 
			
		||||
| 
						 | 
				
			
			@ -122,4 +139,17 @@ func StrFrom(p unsafe.Pointer, n int64) (s string) {
 | 
			
		|||
func NoEscape(p unsafe.Pointer) unsafe.Pointer {
 | 
			
		||||
    x := uintptr(p)
 | 
			
		||||
    return unsafe.Pointer(x ^ 0)
 | 
			
		||||
}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//go:nosplit
 | 
			
		||||
func MoreStack(size uintptr)
 | 
			
		||||
 | 
			
		||||
//go:nosplit
 | 
			
		||||
func Add(ptr unsafe.Pointer, off uintptr) unsafe.Pointer {
 | 
			
		||||
    return unsafe.Pointer(uintptr(ptr) + off)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// CanSizeResue
 | 
			
		||||
func CanSizeResue(cap int) bool {
 | 
			
		||||
    return cap <= int(option.LimitBufferSize)
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										236
									
								
								vendor/github.com/bytedance/sonic/internal/rt/fastvalue.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										236
									
								
								vendor/github.com/bytedance/sonic/internal/rt/fastvalue.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -17,209 +17,209 @@
 | 
			
		|||
package rt
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
    `reflect`
 | 
			
		||||
    `unsafe`
 | 
			
		||||
	"reflect"
 | 
			
		||||
	"unsafe"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
    reflectRtypeItab = findReflectRtypeItab()
 | 
			
		||||
	reflectRtypeItab = findReflectRtypeItab()
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// GoType.KindFlags const
 | 
			
		||||
const (
 | 
			
		||||
    F_direct    = 1 << 5
 | 
			
		||||
    F_kind_mask = (1 << 5) - 1
 | 
			
		||||
	F_direct    = 1 << 5
 | 
			
		||||
	F_kind_mask = (1 << 5) - 1
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// GoType.Flags const
 | 
			
		||||
const (
 | 
			
		||||
    tflagUncommon      uint8 = 1 << 0
 | 
			
		||||
    tflagExtraStar     uint8 = 1 << 1
 | 
			
		||||
    tflagNamed         uint8 = 1 << 2
 | 
			
		||||
    tflagRegularMemory uint8 = 1 << 3
 | 
			
		||||
	tflagUncommon      uint8 = 1 << 0
 | 
			
		||||
	tflagExtraStar     uint8 = 1 << 1
 | 
			
		||||
	tflagNamed         uint8 = 1 << 2
 | 
			
		||||
	tflagRegularMemory uint8 = 1 << 3
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type GoType struct {
 | 
			
		||||
    Size       uintptr
 | 
			
		||||
    PtrData    uintptr
 | 
			
		||||
    Hash       uint32
 | 
			
		||||
    Flags      uint8
 | 
			
		||||
    Align      uint8
 | 
			
		||||
    FieldAlign uint8
 | 
			
		||||
    KindFlags  uint8
 | 
			
		||||
    Traits     unsafe.Pointer
 | 
			
		||||
    GCData     *byte
 | 
			
		||||
    Str        int32
 | 
			
		||||
    PtrToSelf  int32
 | 
			
		||||
	Size       uintptr
 | 
			
		||||
	PtrData    uintptr
 | 
			
		||||
	Hash       uint32
 | 
			
		||||
	Flags      uint8
 | 
			
		||||
	Align      uint8
 | 
			
		||||
	FieldAlign uint8
 | 
			
		||||
	KindFlags  uint8
 | 
			
		||||
	Traits     unsafe.Pointer
 | 
			
		||||
	GCData     *byte
 | 
			
		||||
	Str        int32
 | 
			
		||||
	PtrToSelf  int32
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (self *GoType) IsNamed() bool {
 | 
			
		||||
    return (self.Flags & tflagNamed) != 0
 | 
			
		||||
	return (self.Flags & tflagNamed) != 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (self *GoType) Kind() reflect.Kind {
 | 
			
		||||
    return reflect.Kind(self.KindFlags & F_kind_mask)
 | 
			
		||||
	return reflect.Kind(self.KindFlags & F_kind_mask)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (self *GoType) Pack() (t reflect.Type) {
 | 
			
		||||
    (*GoIface)(unsafe.Pointer(&t)).Itab = reflectRtypeItab
 | 
			
		||||
    (*GoIface)(unsafe.Pointer(&t)).Value = unsafe.Pointer(self)
 | 
			
		||||
    return
 | 
			
		||||
	(*GoIface)(unsafe.Pointer(&t)).Itab = reflectRtypeItab
 | 
			
		||||
	(*GoIface)(unsafe.Pointer(&t)).Value = unsafe.Pointer(self)
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (self *GoType) String() string {
 | 
			
		||||
    return self.Pack().String()
 | 
			
		||||
	return self.Pack().String()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (self *GoType) Indirect() bool {
 | 
			
		||||
    return self.KindFlags & F_direct == 0
 | 
			
		||||
	return self.KindFlags&F_direct == 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type GoMap struct {
 | 
			
		||||
    Count      int
 | 
			
		||||
    Flags      uint8
 | 
			
		||||
    B          uint8
 | 
			
		||||
    Overflow   uint16
 | 
			
		||||
    Hash0      uint32
 | 
			
		||||
    Buckets    unsafe.Pointer
 | 
			
		||||
    OldBuckets unsafe.Pointer
 | 
			
		||||
    Evacuate   uintptr
 | 
			
		||||
    Extra      unsafe.Pointer
 | 
			
		||||
	Count      int
 | 
			
		||||
	Flags      uint8
 | 
			
		||||
	B          uint8
 | 
			
		||||
	Overflow   uint16
 | 
			
		||||
	Hash0      uint32
 | 
			
		||||
	Buckets    unsafe.Pointer
 | 
			
		||||
	OldBuckets unsafe.Pointer
 | 
			
		||||
	Evacuate   uintptr
 | 
			
		||||
	Extra      unsafe.Pointer
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type GoMapIterator struct {
 | 
			
		||||
    K           unsafe.Pointer
 | 
			
		||||
    V           unsafe.Pointer
 | 
			
		||||
    T           *GoMapType
 | 
			
		||||
    H           *GoMap
 | 
			
		||||
    Buckets     unsafe.Pointer
 | 
			
		||||
    Bptr        *unsafe.Pointer
 | 
			
		||||
    Overflow    *[]unsafe.Pointer
 | 
			
		||||
    OldOverflow *[]unsafe.Pointer
 | 
			
		||||
    StartBucket uintptr
 | 
			
		||||
    Offset      uint8
 | 
			
		||||
    Wrapped     bool
 | 
			
		||||
    B           uint8
 | 
			
		||||
    I           uint8
 | 
			
		||||
    Bucket      uintptr
 | 
			
		||||
    CheckBucket uintptr
 | 
			
		||||
	K           unsafe.Pointer
 | 
			
		||||
	V           unsafe.Pointer
 | 
			
		||||
	T           *GoMapType
 | 
			
		||||
	H           *GoMap
 | 
			
		||||
	Buckets     unsafe.Pointer
 | 
			
		||||
	Bptr        *unsafe.Pointer
 | 
			
		||||
	Overflow    *[]unsafe.Pointer
 | 
			
		||||
	OldOverflow *[]unsafe.Pointer
 | 
			
		||||
	StartBucket uintptr
 | 
			
		||||
	Offset      uint8
 | 
			
		||||
	Wrapped     bool
 | 
			
		||||
	B           uint8
 | 
			
		||||
	I           uint8
 | 
			
		||||
	Bucket      uintptr
 | 
			
		||||
	CheckBucket uintptr
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type GoItab struct {
 | 
			
		||||
    it unsafe.Pointer
 | 
			
		||||
    Vt *GoType
 | 
			
		||||
    hv uint32
 | 
			
		||||
    _  [4]byte
 | 
			
		||||
    fn [1]uintptr
 | 
			
		||||
	it unsafe.Pointer
 | 
			
		||||
	Vt *GoType
 | 
			
		||||
	hv uint32
 | 
			
		||||
	_  [4]byte
 | 
			
		||||
	fn [1]uintptr
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type GoIface struct {
 | 
			
		||||
    Itab  *GoItab
 | 
			
		||||
    Value unsafe.Pointer
 | 
			
		||||
	Itab  *GoItab
 | 
			
		||||
	Value unsafe.Pointer
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type GoEface struct {
 | 
			
		||||
    Type  *GoType
 | 
			
		||||
    Value unsafe.Pointer
 | 
			
		||||
	Type  *GoType
 | 
			
		||||
	Value unsafe.Pointer
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (self GoEface) Pack() (v interface{}) {
 | 
			
		||||
    *(*GoEface)(unsafe.Pointer(&v)) = self
 | 
			
		||||
    return
 | 
			
		||||
	*(*GoEface)(unsafe.Pointer(&v)) = self
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type GoPtrType struct {
 | 
			
		||||
    GoType
 | 
			
		||||
    Elem *GoType
 | 
			
		||||
	GoType
 | 
			
		||||
	Elem *GoType
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type GoMapType struct {
 | 
			
		||||
    GoType
 | 
			
		||||
    Key        *GoType
 | 
			
		||||
    Elem       *GoType
 | 
			
		||||
    Bucket     *GoType
 | 
			
		||||
    Hasher     func(unsafe.Pointer, uintptr) uintptr
 | 
			
		||||
    KeySize    uint8
 | 
			
		||||
    ElemSize   uint8
 | 
			
		||||
    BucketSize uint16
 | 
			
		||||
    Flags      uint32
 | 
			
		||||
	GoType
 | 
			
		||||
	Key        *GoType
 | 
			
		||||
	Elem       *GoType
 | 
			
		||||
	Bucket     *GoType
 | 
			
		||||
	Hasher     func(unsafe.Pointer, uintptr) uintptr
 | 
			
		||||
	KeySize    uint8
 | 
			
		||||
	ElemSize   uint8
 | 
			
		||||
	BucketSize uint16
 | 
			
		||||
	Flags      uint32
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (self *GoMapType) IndirectElem() bool {
 | 
			
		||||
    return self.Flags & 2 != 0
 | 
			
		||||
	return self.Flags&2 != 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type GoStructType struct {
 | 
			
		||||
    GoType
 | 
			
		||||
    Pkg    *byte
 | 
			
		||||
    Fields []GoStructField
 | 
			
		||||
	GoType
 | 
			
		||||
	Pkg    *byte
 | 
			
		||||
	Fields []GoStructField
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type GoStructField struct {
 | 
			
		||||
    Name     *byte
 | 
			
		||||
    Type     *GoType
 | 
			
		||||
    OffEmbed uintptr
 | 
			
		||||
	Name     *byte
 | 
			
		||||
	Type     *GoType
 | 
			
		||||
	OffEmbed uintptr
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type GoInterfaceType struct {
 | 
			
		||||
    GoType
 | 
			
		||||
    PkgPath *byte
 | 
			
		||||
    Methods []GoInterfaceMethod
 | 
			
		||||
	GoType
 | 
			
		||||
	PkgPath *byte
 | 
			
		||||
	Methods []GoInterfaceMethod
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type GoInterfaceMethod struct {
 | 
			
		||||
    Name int32
 | 
			
		||||
    Type int32
 | 
			
		||||
	Name int32
 | 
			
		||||
	Type int32
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type GoSlice struct {
 | 
			
		||||
    Ptr unsafe.Pointer
 | 
			
		||||
    Len int
 | 
			
		||||
    Cap int
 | 
			
		||||
	Ptr unsafe.Pointer
 | 
			
		||||
	Len int
 | 
			
		||||
	Cap int
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type GoString struct {
 | 
			
		||||
    Ptr unsafe.Pointer
 | 
			
		||||
    Len int
 | 
			
		||||
	Ptr unsafe.Pointer
 | 
			
		||||
	Len int
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func PtrElem(t *GoType) *GoType {
 | 
			
		||||
    return (*GoPtrType)(unsafe.Pointer(t)).Elem
 | 
			
		||||
	return (*GoPtrType)(unsafe.Pointer(t)).Elem
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func MapType(t *GoType) *GoMapType {
 | 
			
		||||
    return (*GoMapType)(unsafe.Pointer(t))
 | 
			
		||||
	return (*GoMapType)(unsafe.Pointer(t))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func IfaceType(t *GoType) *GoInterfaceType {
 | 
			
		||||
    return (*GoInterfaceType)(unsafe.Pointer(t))
 | 
			
		||||
	return (*GoInterfaceType)(unsafe.Pointer(t))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func UnpackType(t reflect.Type) *GoType {
 | 
			
		||||
    return (*GoType)((*GoIface)(unsafe.Pointer(&t)).Value)
 | 
			
		||||
	return (*GoType)((*GoIface)(unsafe.Pointer(&t)).Value)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func UnpackEface(v interface{}) GoEface {
 | 
			
		||||
    return *(*GoEface)(unsafe.Pointer(&v))
 | 
			
		||||
	return *(*GoEface)(unsafe.Pointer(&v))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func UnpackIface(v interface{}) GoIface {
 | 
			
		||||
    return *(*GoIface)(unsafe.Pointer(&v))
 | 
			
		||||
	return *(*GoIface)(unsafe.Pointer(&v))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func findReflectRtypeItab() *GoItab {
 | 
			
		||||
    v := reflect.TypeOf(struct{}{})
 | 
			
		||||
    return (*GoIface)(unsafe.Pointer(&v)).Itab
 | 
			
		||||
	v := reflect.TypeOf(struct{}{})
 | 
			
		||||
	return (*GoIface)(unsafe.Pointer(&v)).Itab
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func AssertI2I2(t *GoType, i GoIface) (r GoIface) {
 | 
			
		||||
    inter := IfaceType(t)
 | 
			
		||||
	inter := IfaceType(t)
 | 
			
		||||
	tab := i.Itab
 | 
			
		||||
	if tab == nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	if (*GoInterfaceType)(tab.it) != inter {
 | 
			
		||||
		tab = Getitab(inter, tab.Vt, true)
 | 
			
		||||
		tab = GetItab(inter, tab.Vt, true)
 | 
			
		||||
		if tab == nil {
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
| 
						 | 
				
			
			@ -229,15 +229,33 @@ func AssertI2I2(t *GoType, i GoIface) (r GoIface) {
 | 
			
		|||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (t *GoType) IsInt64() bool {
 | 
			
		||||
	return t.Kind() == reflect.Int64 || (t.Kind() == reflect.Int && t.Size == 8)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (t *GoType) IsInt32() bool {
 | 
			
		||||
	return t.Kind() == reflect.Int32 || (t.Kind() == reflect.Int && t.Size == 4)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//go:nosplit
 | 
			
		||||
func (t *GoType) IsUint64() bool {
 | 
			
		||||
	isUint := t.Kind() == reflect.Uint || t.Kind() == reflect.Uintptr
 | 
			
		||||
	return t.Kind() == reflect.Uint64 || (isUint && t.Size == 8)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//go:nosplit
 | 
			
		||||
func (t *GoType) IsUint32() bool {
 | 
			
		||||
	isUint := t.Kind() == reflect.Uint || t.Kind() == reflect.Uintptr
 | 
			
		||||
	return t.Kind() == reflect.Uint32 || (isUint && t.Size == 4)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//go:nosplit
 | 
			
		||||
func PtrAdd(ptr unsafe.Pointer, offset uintptr) unsafe.Pointer {
 | 
			
		||||
	return unsafe.Pointer(uintptr(ptr) + offset)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//go:noescape
 | 
			
		||||
//go:linkname Getitab runtime.getitab
 | 
			
		||||
func Getitab(inter *GoInterfaceType, typ *GoType, canfail bool) *GoItab
 | 
			
		||||
//go:linkname GetItab runtime.getitab
 | 
			
		||||
func GetItab(inter *GoInterfaceType, typ *GoType, canfail bool) *GoItab
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
func GetFuncPC(fn interface{}) uintptr {
 | 
			
		||||
    ft := UnpackEface(fn)
 | 
			
		||||
    if ft.Type.Kind() != reflect.Func {
 | 
			
		||||
        panic("not a function")
 | 
			
		||||
    }
 | 
			
		||||
    return *(*uintptr)(ft.Value)
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										55
									
								
								vendor/github.com/bytedance/sonic/internal/rt/gcwb.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										55
									
								
								vendor/github.com/bytedance/sonic/internal/rt/gcwb.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -1,3 +1,5 @@
 | 
			
		|||
// +build go1.21
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2021 ByteDance Inc.
 | 
			
		||||
 *
 | 
			
		||||
| 
						 | 
				
			
			@ -17,13 +19,18 @@
 | 
			
		|||
package rt
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
    `os`
 | 
			
		||||
    `sync/atomic`
 | 
			
		||||
    `unsafe`
 | 
			
		||||
 | 
			
		||||
    `golang.org/x/arch/x86/x86asm`
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
//go:linkname GcWriteBarrier2 runtime.gcWriteBarrier2
 | 
			
		||||
func GcWriteBarrier2()
 | 
			
		||||
 | 
			
		||||
//go:linkname RuntimeWriteBarrier runtime.writeBarrier
 | 
			
		||||
var RuntimeWriteBarrier uintptr
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
    _MaxInstr = 15
 | 
			
		||||
)
 | 
			
		||||
| 
						 | 
				
			
			@ -76,49 +83,3 @@ func GcwbAddr() uintptr {
 | 
			
		|||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// StopProfiling is used to stop traceback introduced by SIGPROF while native code is running.
 | 
			
		||||
// WARN: this option is only a workaround for traceback issue (https://github.com/bytedance/sonic/issues/310),
 | 
			
		||||
// and will be dropped when the issue is fixed.
 | 
			
		||||
var StopProfiling = os.Getenv("SONIC_STOP_PROFILING") != ""
 | 
			
		||||
 | 
			
		||||
// WARN: must be aligned with runtime.Prof
 | 
			
		||||
// type Prof struct {
 | 
			
		||||
//     signalLock uint32
 | 
			
		||||
// 	hz int32
 | 
			
		||||
// }
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
    // // go:linkname runtimeProf runtime.prof
 | 
			
		||||
    // runtimeProf Prof
 | 
			
		||||
 | 
			
		||||
    // count of native-C calls
 | 
			
		||||
    yieldCount uint32
 | 
			
		||||
 | 
			
		||||
    // previous value of runtimeProf.hz
 | 
			
		||||
    oldHz int32
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
//go:nosplit
 | 
			
		||||
func MoreStack(size uintptr)
 | 
			
		||||
 | 
			
		||||
func StopProf()
 | 
			
		||||
 | 
			
		||||
// func StopProf() {
 | 
			
		||||
//     atomic.AddUint32(&yieldCount, 1)
 | 
			
		||||
//     if runtimeProf.hz != 0 {
 | 
			
		||||
//         oldHz = runtimeProf.hz
 | 
			
		||||
//         runtimeProf.hz = 0
 | 
			
		||||
//     }
 | 
			
		||||
// }
 | 
			
		||||
 | 
			
		||||
func StartProf()
 | 
			
		||||
 | 
			
		||||
// func StartProf() {
 | 
			
		||||
//     atomic.AddUint32(&yieldCount, ^uint32(0))
 | 
			
		||||
//     if yieldCount == 0 && runtimeProf.hz == 0 {
 | 
			
		||||
//         if oldHz == 0 {
 | 
			
		||||
//             oldHz = 100
 | 
			
		||||
//         }
 | 
			
		||||
//         runtimeProf.hz = oldHz
 | 
			
		||||
//     }
 | 
			
		||||
// }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										29
									
								
								vendor/github.com/bytedance/sonic/internal/rt/gcwb_legacy.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								vendor/github.com/bytedance/sonic/internal/rt/gcwb_legacy.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,29 @@
 | 
			
		|||
// +build go1.16,!go1.21
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2021 ByteDance Inc.
 | 
			
		||||
 *
 | 
			
		||||
 * Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
 * you may not use this file except in compliance with the License.
 | 
			
		||||
 * You may obtain a copy of the License at
 | 
			
		||||
 *
 | 
			
		||||
 *     http://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
 *
 | 
			
		||||
 * Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
 * distributed under the License is distributed on an "AS IS" BASIS,
 | 
			
		||||
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
 * See the License for the specific language governing permissions and
 | 
			
		||||
 * limitations under the License.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
package rt
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
    _ `unsafe`
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
//go:linkname GcWriteBarrierAX runtime.gcWriteBarrier
 | 
			
		||||
func GcWriteBarrierAX()
 | 
			
		||||
 | 
			
		||||
//go:linkname RuntimeWriteBarrier runtime.writeBarrier
 | 
			
		||||
var RuntimeWriteBarrier uintptr
 | 
			
		||||
							
								
								
									
										36
									
								
								vendor/github.com/bytedance/sonic/internal/rt/growslice.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								vendor/github.com/bytedance/sonic/internal/rt/growslice.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,36 @@
 | 
			
		|||
// +build go1.20
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2021 ByteDance Inc.
 | 
			
		||||
 *
 | 
			
		||||
 * Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
 * you may not use this file except in compliance with the License.
 | 
			
		||||
 * You may obtain a copy of the License at
 | 
			
		||||
 *
 | 
			
		||||
 *     http://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
 *
 | 
			
		||||
 * Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
 * distributed under the License is distributed on an "AS IS" BASIS,
 | 
			
		||||
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
 * See the License for the specific language governing permissions and
 | 
			
		||||
 * limitations under the License.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
package rt
 | 
			
		||||
 | 
			
		||||
import "unsafe"
 | 
			
		||||
 | 
			
		||||
// Growslice to newCap, not append length
 | 
			
		||||
// Note: the [old, newCap) will not be zeroed if et does not have any ptr data.
 | 
			
		||||
func GrowSlice(et *GoType, old GoSlice, newCap int) GoSlice {
 | 
			
		||||
	if newCap < old.Len {
 | 
			
		||||
		panic("growslice's newCap is smaller than old length")
 | 
			
		||||
	}
 | 
			
		||||
	s := growslice(old.Ptr, newCap, old.Cap, newCap - old.Len, et)
 | 
			
		||||
	s.Len = old.Len
 | 
			
		||||
	return s
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//go:linkname growslice runtime.growslice
 | 
			
		||||
//goland:noinspection GoUnusedParameter
 | 
			
		||||
func growslice(oldPtr unsafe.Pointer, newLen, oldCap, num int, et *GoType) GoSlice
 | 
			
		||||
							
								
								
									
										27
									
								
								vendor/github.com/bytedance/sonic/internal/rt/growslice_legacy.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								vendor/github.com/bytedance/sonic/internal/rt/growslice_legacy.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,27 @@
 | 
			
		|||
// +build go1.16,!go1.20
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2021 ByteDance Inc.
 | 
			
		||||
 *
 | 
			
		||||
 * Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
 * you may not use this file except in compliance with the License.
 | 
			
		||||
 * You may obtain a copy of the License at
 | 
			
		||||
 *
 | 
			
		||||
 *     http://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
 *
 | 
			
		||||
 * Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
 * distributed under the License is distributed on an "AS IS" BASIS,
 | 
			
		||||
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
 * See the License for the specific language governing permissions and
 | 
			
		||||
 * limitations under the License.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
package rt
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
    _ `unsafe`
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
//go:linkname GrowSlice runtime.growslice
 | 
			
		||||
//goland:noinspection GoUnusedParameter
 | 
			
		||||
func GrowSlice(et *GoType, old GoSlice, cap int) GoSlice
 | 
			
		||||
							
								
								
									
										31
									
								
								vendor/github.com/bytedance/sonic/internal/rt/pool.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								vendor/github.com/bytedance/sonic/internal/rt/pool.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,31 @@
 | 
			
		|||
package rt
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"unsafe"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type SlicePool struct {
 | 
			
		||||
	pool  unsafe.Pointer
 | 
			
		||||
	len   int
 | 
			
		||||
	index int
 | 
			
		||||
	typ   uintptr
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func NewPool(typ *GoType, size int) SlicePool {
 | 
			
		||||
	return SlicePool{pool: newarray(typ, size), len: size, typ: uintptr(unsafe.Pointer(typ))}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (self *SlicePool) GetSlice(size int) unsafe.Pointer {
 | 
			
		||||
	// pool is full, fallback to normal alloc
 | 
			
		||||
	if size > self.Remain() {
 | 
			
		||||
		return newarray(AsGoType(self.typ), size)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ptr := PtrAdd(self.pool, uintptr(self.index)* AsGoType(self.typ).Size)
 | 
			
		||||
	self.index += size
 | 
			
		||||
	return ptr
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (self *SlicePool) Remain() int {
 | 
			
		||||
	return self.len - self.index
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/github.com/bytedance/sonic/internal/rt/stackmap.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/bytedance/sonic/internal/rt/stackmap.go
									
										
									
										generated
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -178,4 +178,4 @@ func (self *StackMapBuilder) AddFields(n int, ptr bool) {
 | 
			
		|||
    } else {
 | 
			
		||||
        self.b.AppendMany(n, 0)
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										165
									
								
								vendor/github.com/bytedance/sonic/internal/rt/stubs.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										165
									
								
								vendor/github.com/bytedance/sonic/internal/rt/stubs.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,165 @@
 | 
			
		|||
/*
 | 
			
		||||
 * Copyright 2021 ByteDance Inc.
 | 
			
		||||
 *
 | 
			
		||||
 * Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
 * you may not use this file except in compliance with the License.
 | 
			
		||||
 * You may obtain a copy of the License at
 | 
			
		||||
 *
 | 
			
		||||
 *     http://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
 *
 | 
			
		||||
 * Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
 * distributed under the License is distributed on an "AS IS" BASIS,
 | 
			
		||||
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
 * See the License for the specific language governing permissions and
 | 
			
		||||
 * limitations under the License.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
package rt
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"reflect"
 | 
			
		||||
	"unsafe"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
//go:noescape
 | 
			
		||||
//go:linkname Memmove runtime.memmove
 | 
			
		||||
func Memmove(to unsafe.Pointer, from unsafe.Pointer, n uintptr)
 | 
			
		||||
 | 
			
		||||
//go:linkname Mapiternext runtime.mapiternext
 | 
			
		||||
func Mapiternext(it *GoMapIterator)
 | 
			
		||||
 | 
			
		||||
//go:linkname Mapiterinit runtime.mapiterinit
 | 
			
		||||
func Mapiterinit(t *GoMapType, m *GoMap, it *GoMapIterator)
 | 
			
		||||
 | 
			
		||||
//go:linkname IsValidNumber encoding/json.isValidNumber
 | 
			
		||||
func IsValidNumber(s string) bool
 | 
			
		||||
 | 
			
		||||
//go:nosplit
 | 
			
		||||
//go:linkname MemclrHasPointers runtime.memclrHasPointers
 | 
			
		||||
//goland:noinspection GoUnusedParameter
 | 
			
		||||
func MemclrHasPointers(ptr unsafe.Pointer, n uintptr)
 | 
			
		||||
 | 
			
		||||
//go:linkname MemclrNoHeapPointers runtime.memclrNoHeapPointers
 | 
			
		||||
//goland:noinspection GoUnusedParameter
 | 
			
		||||
func MemclrNoHeapPointers(ptr unsafe.Pointer, n uintptr)
 | 
			
		||||
 | 
			
		||||
//go:linkname newarray runtime.newarray
 | 
			
		||||
func newarray(typ *GoType, n int) unsafe.Pointer 
 | 
			
		||||
 | 
			
		||||
func add(p unsafe.Pointer, x uintptr) unsafe.Pointer {
 | 
			
		||||
	return unsafe.Pointer(uintptr(p) + x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func ClearMemory(et *GoType, ptr unsafe.Pointer, size uintptr) {
 | 
			
		||||
	if et.PtrData == 0 {
 | 
			
		||||
		MemclrNoHeapPointers(ptr, size)
 | 
			
		||||
	} else {
 | 
			
		||||
		MemclrHasPointers(ptr, size)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// runtime.maxElementSize
 | 
			
		||||
const _max_map_element_size uintptr = 128
 | 
			
		||||
 | 
			
		||||
func IsMapfast(vt reflect.Type) bool {
 | 
			
		||||
	return vt.Elem().Size() <= _max_map_element_size
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//go:linkname Mallocgc runtime.mallocgc
 | 
			
		||||
//goland:noinspection GoUnusedParameter
 | 
			
		||||
func Mallocgc(size uintptr, typ *GoType, needzero bool) unsafe.Pointer
 | 
			
		||||
 | 
			
		||||
//go:linkname Makemap reflect.makemap
 | 
			
		||||
func Makemap(*GoType, int) unsafe.Pointer
 | 
			
		||||
 | 
			
		||||
//go:linkname Mapassign runtime.mapassign
 | 
			
		||||
//goland:noinspection GoUnusedParameter
 | 
			
		||||
func Mapassign(t *GoMapType, h unsafe.Pointer, k unsafe.Pointer) unsafe.Pointer
 | 
			
		||||
 | 
			
		||||
//go:linkname Mapassign_fast32 runtime.mapassign_fast32
 | 
			
		||||
//goland:noinspection GoUnusedParameter
 | 
			
		||||
func Mapassign_fast32(t *GoMapType, h unsafe.Pointer, k uint32) unsafe.Pointer
 | 
			
		||||
 | 
			
		||||
//go:linkname Mapassign_fast64 runtime.mapassign_fast64
 | 
			
		||||
//goland:noinspection GoUnusedParameter
 | 
			
		||||
func Mapassign_fast64(t *GoMapType, h unsafe.Pointer, k uint64) unsafe.Pointer
 | 
			
		||||
 | 
			
		||||
//go:linkname Mapassign_faststr runtime.mapassign_faststr
 | 
			
		||||
//goland:noinspection GoUnusedParameter
 | 
			
		||||
func Mapassign_faststr(t *GoMapType, h unsafe.Pointer, s string) unsafe.Pointer
 | 
			
		||||
 | 
			
		||||
type MapStrAssign func (t *GoMapType, h unsafe.Pointer, s string) unsafe.Pointer
 | 
			
		||||
 | 
			
		||||
func GetMapStrAssign(vt reflect.Type) MapStrAssign {
 | 
			
		||||
	if IsMapfast(vt) {
 | 
			
		||||
		return Mapassign_faststr
 | 
			
		||||
	} else {
 | 
			
		||||
		return func (t *GoMapType, h unsafe.Pointer, s string) unsafe.Pointer {
 | 
			
		||||
			return Mapassign(t, h, unsafe.Pointer(&s))
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type Map32Assign func(t *GoMapType, h unsafe.Pointer, k uint32) unsafe.Pointer
 | 
			
		||||
 | 
			
		||||
func GetMap32Assign(vt reflect.Type) Map32Assign {
 | 
			
		||||
	if IsMapfast(vt) {
 | 
			
		||||
		return Mapassign_fast32
 | 
			
		||||
	} else {
 | 
			
		||||
		return func (t *GoMapType, h unsafe.Pointer, s uint32) unsafe.Pointer {
 | 
			
		||||
			return Mapassign(t, h, unsafe.Pointer(&s))
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type Map64Assign func(t *GoMapType, h unsafe.Pointer, k uint64) unsafe.Pointer
 | 
			
		||||
 | 
			
		||||
func GetMap64Assign(vt reflect.Type) Map64Assign {
 | 
			
		||||
	if IsMapfast(vt) {
 | 
			
		||||
		return Mapassign_fast64
 | 
			
		||||
	} else {
 | 
			
		||||
		return func (t *GoMapType, h unsafe.Pointer, s uint64) unsafe.Pointer {
 | 
			
		||||
			return Mapassign(t, h, unsafe.Pointer(&s))
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
var emptyBytes = make([]byte, 0, 0)
 | 
			
		||||
var EmptySlice = *(*GoSlice)(unsafe.Pointer(&emptyBytes))
 | 
			
		||||
 | 
			
		||||
//go:linkname makeslice runtime.makeslice
 | 
			
		||||
//goland:noinspection GoUnusedParameter
 | 
			
		||||
func makeslice(et *GoType, len int, cap int) unsafe.Pointer
 | 
			
		||||
 | 
			
		||||
func MakeSlice(oldPtr unsafe.Pointer, et *GoType, newLen int) *GoSlice {
 | 
			
		||||
	if newLen == 0 {
 | 
			
		||||
		return &EmptySlice
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if *(*unsafe.Pointer)(oldPtr) == nil {
 | 
			
		||||
		return &GoSlice{
 | 
			
		||||
			Ptr: makeslice(et, newLen, newLen),
 | 
			
		||||
			Len: newLen,
 | 
			
		||||
			Cap: newLen,
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	old := (*GoSlice)(oldPtr)
 | 
			
		||||
	if old.Cap >= newLen {
 | 
			
		||||
		old.Len = newLen
 | 
			
		||||
		return old
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	new := GrowSlice(et, *old, newLen)
 | 
			
		||||
 | 
			
		||||
	// we sould clear the memory from [oldLen:newLen]
 | 
			
		||||
	if et.PtrData == 0 {
 | 
			
		||||
		oldlenmem := uintptr(old.Len) * et.Size
 | 
			
		||||
		newlenmem := uintptr(newLen) * et.Size
 | 
			
		||||
		MemclrNoHeapPointers(add(new.Ptr, oldlenmem), newlenmem-oldlenmem)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	new.Len = newLen
 | 
			
		||||
	return &new
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										118
									
								
								vendor/github.com/bytedance/sonic/internal/rt/table.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										118
									
								
								vendor/github.com/bytedance/sonic/internal/rt/table.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,118 @@
 | 
			
		|||
// Copyright 2024 CloudWeGo Authors
 | 
			
		||||
//
 | 
			
		||||
// Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
// you may not use this file except in compliance with the License.
 | 
			
		||||
// You may obtain a copy of the License at
 | 
			
		||||
//
 | 
			
		||||
//     https://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
//
 | 
			
		||||
// Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
// distributed under the License is distributed on an "AS IS" BASIS,
 | 
			
		||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
// See the License for the specific language governing permissions and
 | 
			
		||||
// limitations under the License.
 | 
			
		||||
 | 
			
		||||
package rt
 | 
			
		||||
 | 
			
		||||
import "unicode/utf8"
 | 
			
		||||
 | 
			
		||||
var SafeSet = [utf8.RuneSelf]bool{
 | 
			
		||||
	' ':      true,
 | 
			
		||||
	'!':      true,
 | 
			
		||||
	'"':      false,
 | 
			
		||||
	'#':      true,
 | 
			
		||||
	'$':      true,
 | 
			
		||||
	'%':      true,
 | 
			
		||||
	'&':      true,
 | 
			
		||||
	'\'':     true,
 | 
			
		||||
	'(':      true,
 | 
			
		||||
	')':      true,
 | 
			
		||||
	'*':      true,
 | 
			
		||||
	'+':      true,
 | 
			
		||||
	',':      true,
 | 
			
		||||
	'-':      true,
 | 
			
		||||
	'.':      true,
 | 
			
		||||
	'/':      true,
 | 
			
		||||
	'0':      true,
 | 
			
		||||
	'1':      true,
 | 
			
		||||
	'2':      true,
 | 
			
		||||
	'3':      true,
 | 
			
		||||
	'4':      true,
 | 
			
		||||
	'5':      true,
 | 
			
		||||
	'6':      true,
 | 
			
		||||
	'7':      true,
 | 
			
		||||
	'8':      true,
 | 
			
		||||
	'9':      true,
 | 
			
		||||
	':':      true,
 | 
			
		||||
	';':      true,
 | 
			
		||||
	'<':      true,
 | 
			
		||||
	'=':      true,
 | 
			
		||||
	'>':      true,
 | 
			
		||||
	'?':      true,
 | 
			
		||||
	'@':      true,
 | 
			
		||||
	'A':      true,
 | 
			
		||||
	'B':      true,
 | 
			
		||||
	'C':      true,
 | 
			
		||||
	'D':      true,
 | 
			
		||||
	'E':      true,
 | 
			
		||||
	'F':      true,
 | 
			
		||||
	'G':      true,
 | 
			
		||||
	'H':      true,
 | 
			
		||||
	'I':      true,
 | 
			
		||||
	'J':      true,
 | 
			
		||||
	'K':      true,
 | 
			
		||||
	'L':      true,
 | 
			
		||||
	'M':      true,
 | 
			
		||||
	'N':      true,
 | 
			
		||||
	'O':      true,
 | 
			
		||||
	'P':      true,
 | 
			
		||||
	'Q':      true,
 | 
			
		||||
	'R':      true,
 | 
			
		||||
	'S':      true,
 | 
			
		||||
	'T':      true,
 | 
			
		||||
	'U':      true,
 | 
			
		||||
	'V':      true,
 | 
			
		||||
	'W':      true,
 | 
			
		||||
	'X':      true,
 | 
			
		||||
	'Y':      true,
 | 
			
		||||
	'Z':      true,
 | 
			
		||||
	'[':      true,
 | 
			
		||||
	'\\':     false,
 | 
			
		||||
	']':      true,
 | 
			
		||||
	'^':      true,
 | 
			
		||||
	'_':      true,
 | 
			
		||||
	'`':      true,
 | 
			
		||||
	'a':      true,
 | 
			
		||||
	'b':      true,
 | 
			
		||||
	'c':      true,
 | 
			
		||||
	'd':      true,
 | 
			
		||||
	'e':      true,
 | 
			
		||||
	'f':      true,
 | 
			
		||||
	'g':      true,
 | 
			
		||||
	'h':      true,
 | 
			
		||||
	'i':      true,
 | 
			
		||||
	'j':      true,
 | 
			
		||||
	'k':      true,
 | 
			
		||||
	'l':      true,
 | 
			
		||||
	'm':      true,
 | 
			
		||||
	'n':      true,
 | 
			
		||||
	'o':      true,
 | 
			
		||||
	'p':      true,
 | 
			
		||||
	'q':      true,
 | 
			
		||||
	'r':      true,
 | 
			
		||||
	's':      true,
 | 
			
		||||
	't':      true,
 | 
			
		||||
	'u':      true,
 | 
			
		||||
	'v':      true,
 | 
			
		||||
	'w':      true,
 | 
			
		||||
	'x':      true,
 | 
			
		||||
	'y':      true,
 | 
			
		||||
	'z':      true,
 | 
			
		||||
	'{':      true,
 | 
			
		||||
	'|':      true,
 | 
			
		||||
	'}':      true,
 | 
			
		||||
	'~':      true,
 | 
			
		||||
	'\u007f': true,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var Hex = "0123456789abcdef"
 | 
			
		||||
							
								
								
									
										45
									
								
								vendor/github.com/bytedance/sonic/internal/rt/types.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								vendor/github.com/bytedance/sonic/internal/rt/types.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,45 @@
 | 
			
		|||
package rt
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"reflect"
 | 
			
		||||
	"unsafe"
 | 
			
		||||
	"encoding/json"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func AsGoType(t uintptr) *GoType {
 | 
			
		||||
	return (*GoType)(unsafe.Pointer(t))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	BoolType				= UnpackType(reflect.TypeOf(false))
 | 
			
		||||
	ByteType                = UnpackType(reflect.TypeOf(byte(0)))
 | 
			
		||||
	IncntType               = UnpackType(reflect.TypeOf(int(0)))
 | 
			
		||||
	Int8Type                = UnpackType(reflect.TypeOf(int8(0)))
 | 
			
		||||
	Int16Type               = UnpackType(reflect.TypeOf(int16(0)))
 | 
			
		||||
	Int32Type               = UnpackType(reflect.TypeOf(int32(0)))
 | 
			
		||||
	Int64Type               = UnpackType(reflect.TypeOf(int64(0)))
 | 
			
		||||
	UintType                = UnpackType(reflect.TypeOf(uint(0)))
 | 
			
		||||
	Uint8Type               = UnpackType(reflect.TypeOf(uint8(0)))
 | 
			
		||||
	Uint16Type              = UnpackType(reflect.TypeOf(uint16(0)))
 | 
			
		||||
	Uint32Type              = UnpackType(reflect.TypeOf(uint32(0)))
 | 
			
		||||
	Uint64Type              = UnpackType(reflect.TypeOf(uint64(0)))
 | 
			
		||||
	Float32Type             = UnpackType(reflect.TypeOf(float32(0)))
 | 
			
		||||
	Float64Type             = UnpackType(reflect.TypeOf(float64(0)))
 | 
			
		||||
 | 
			
		||||
	StringType              = UnpackType(reflect.TypeOf(""))
 | 
			
		||||
	BytesType               = UnpackType(reflect.TypeOf([]byte(nil)))
 | 
			
		||||
	JsonNumberType          = UnpackType(reflect.TypeOf(json.Number("")))
 | 
			
		||||
 | 
			
		||||
	SliceEfaceType          = UnpackType(reflect.TypeOf([]interface{}(nil)))
 | 
			
		||||
	SliceStringType         = UnpackType(reflect.TypeOf([]string(nil)))
 | 
			
		||||
	SliceI32Type          	= UnpackType(reflect.TypeOf([]int32(nil)))
 | 
			
		||||
	SliceI64Type          	= UnpackType(reflect.TypeOf([]int64(nil)))
 | 
			
		||||
	SliceU32Type          	= UnpackType(reflect.TypeOf([]uint32(nil)))
 | 
			
		||||
	SliceU64Type          	= UnpackType(reflect.TypeOf([]uint64(nil)))
 | 
			
		||||
 | 
			
		||||
	AnyType    				= UnpackType(reflect.TypeOf((*interface{})(nil)).Elem())
 | 
			
		||||
	MapEfaceType    		= UnpackType(reflect.TypeOf(map[string]interface{}(nil)))
 | 
			
		||||
	MapStringType    		= UnpackType(reflect.TypeOf(map[string]string(nil)))
 | 
			
		||||
 | 
			
		||||
	MapEfaceMapType    		= MapType(UnpackType(reflect.TypeOf(map[string]interface{}(nil))))
 | 
			
		||||
)
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue