summaryrefslogtreecommitdiff
path: root/vendor/github.com/bytedance/sonic/internal/encoder/alg
diff options
context:
space:
mode:
authorLibravatar dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>2025-04-14 09:43:56 +0200
committerLibravatar GitHub <noreply@github.com>2025-04-14 09:43:56 +0200
commit51b9ef5c346f333e558eca38fd954464322f3b7d (patch)
treebf5cd0de887a27c1afc66345b1a464921d96e503 /vendor/github.com/bytedance/sonic/internal/encoder/alg
parent[docs] Remind the user that password resets don't work without restarting. (#... (diff)
downloadgotosocial-51b9ef5c346f333e558eca38fd954464322f3b7d.tar.xz
[chore]: Bump github.com/gin-contrib/gzip from 1.2.2 to 1.2.3 (#4000)
Bumps [github.com/gin-contrib/gzip](https://github.com/gin-contrib/gzip) from 1.2.2 to 1.2.3. - [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.2.2...v1.2.3) --- updated-dependencies: - dependency-name: github.com/gin-contrib/gzip dependency-version: 1.2.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Diffstat (limited to 'vendor/github.com/bytedance/sonic/internal/encoder/alg')
-rw-r--r--vendor/github.com/bytedance/sonic/internal/encoder/alg/mapiter.go11
-rw-r--r--vendor/github.com/bytedance/sonic/internal/encoder/alg/primitives.go17
-rw-r--r--vendor/github.com/bytedance/sonic/internal/encoder/alg/spec.go4
-rw-r--r--vendor/github.com/bytedance/sonic/internal/encoder/alg/spec_compat.go2
4 files changed, 22 insertions, 12 deletions
diff --git a/vendor/github.com/bytedance/sonic/internal/encoder/alg/mapiter.go b/vendor/github.com/bytedance/sonic/internal/encoder/alg/mapiter.go
index 5d9956a90..032ae3b8a 100644
--- a/vendor/github.com/bytedance/sonic/internal/encoder/alg/mapiter.go
+++ b/vendor/github.com/bytedance/sonic/internal/encoder/alg/mapiter.go
@@ -165,19 +165,20 @@ func IteratorNext(p *MapIterator) {
p.ki++
}
-func IteratorStart(t *rt.GoMapType, m *rt.GoMap, fv uint64) (*MapIterator, error) {
+func IteratorStart(t *rt.GoMapType, m unsafe.Pointer, fv uint64) (*MapIterator, error) {
it := newIterator()
rt.Mapiterinit(t, m, &it.It)
+ count := rt.Maplen(m)
/* check for key-sorting, empty map don't need sorting */
- if m.Count == 0 || (fv & (1<<BitSortMapKeys)) == 0 {
+ if count == 0 || (fv & (1<<BitSortMapKeys)) == 0 {
it.ki = -1
return it, nil
}
/* pre-allocate space if needed */
- if m.Count > it.kv.Cap {
- it.kv = rt.GrowSlice(iteratorPair, it.kv, m.Count)
+ if count > it.kv.Cap {
+ it.kv = rt.GrowSlice(iteratorPair, it.kv, count)
}
/* dump all the key-value pairs */
@@ -189,7 +190,7 @@ func IteratorStart(t *rt.GoMapType, m *rt.GoMap, fv uint64) (*MapIterator, error
}
/* sort the keys, map with only 1 item don't need sorting */
- if it.ki = 1; m.Count > 1 {
+ if it.ki = 1; count > 1 {
radixQsort(it.data(), 0, maxDepth(it.kv.Len))
}
diff --git a/vendor/github.com/bytedance/sonic/internal/encoder/alg/primitives.go b/vendor/github.com/bytedance/sonic/internal/encoder/alg/primitives.go
index 63fa01890..e2610fbc8 100644
--- a/vendor/github.com/bytedance/sonic/internal/encoder/alg/primitives.go
+++ b/vendor/github.com/bytedance/sonic/internal/encoder/alg/primitives.go
@@ -1,12 +1,12 @@
/**
* Copyright 2024 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.
@@ -19,8 +19,11 @@ package alg
import (
"encoding"
"encoding/json"
+ "reflect"
+ "unsafe"
"github.com/bytedance/sonic/internal/encoder/vars"
+ "github.com/bytedance/sonic/internal/resolver"
"github.com/bytedance/sonic/internal/rt"
)
@@ -92,4 +95,10 @@ func EncodeTextMarshaler(buf *[]byte, val encoding.TextMarshaler, opt uint64) er
return nil
}
}
- \ No newline at end of file
+
+func IsZero(val unsafe.Pointer, fv *resolver.FieldMeta) bool {
+ rv := reflect.NewAt(fv.Type, val).Elem()
+ b1 := fv.IsZero == nil && rv.IsZero()
+ b2 := fv.IsZero != nil && fv.IsZero(rv)
+ return b1 || b2
+}
diff --git a/vendor/github.com/bytedance/sonic/internal/encoder/alg/spec.go b/vendor/github.com/bytedance/sonic/internal/encoder/alg/spec.go
index bff943626..6f76ac739 100644
--- a/vendor/github.com/bytedance/sonic/internal/encoder/alg/spec.go
+++ b/vendor/github.com/bytedance/sonic/internal/encoder/alg/spec.go
@@ -1,5 +1,5 @@
-//go:build (amd64 && go1.16 && !go1.24) || (arm64 && go1.20 && !go1.24)
-// +build amd64,go1.16,!go1.24 arm64,go1.20,!go1.24
+//go:build (amd64 && go1.16 && !go1.25) || (arm64 && go1.20 && !go1.25)
+// +build amd64,go1.16,!go1.25 arm64,go1.20,!go1.25
/**
* Copyright 2024 ByteDance Inc.
diff --git a/vendor/github.com/bytedance/sonic/internal/encoder/alg/spec_compat.go b/vendor/github.com/bytedance/sonic/internal/encoder/alg/spec_compat.go
index c15cbf7d8..cd8369834 100644
--- a/vendor/github.com/bytedance/sonic/internal/encoder/alg/spec_compat.go
+++ b/vendor/github.com/bytedance/sonic/internal/encoder/alg/spec_compat.go
@@ -1,4 +1,4 @@
-// +build !amd64,!arm64 go1.24 !go1.16 arm64,!go1.20
+// +build !amd64,!arm64 go1.25 !go1.16 arm64,!go1.20
/**
* Copyright 2024 ByteDance Inc.