aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/vendor/github.com/google/pprof/profile
diff options
context:
space:
mode:
authorDmitri Shuralyov <dmitshur@golang.org>2025-12-01 11:29:26 -0500
committerGopher Robot <gobot@golang.org>2025-12-01 09:15:40 -0800
commit4be545115cf8ed42aa0337cbb6c3a92f718192b9 (patch)
treedd7495ce97f9d540edc8c71d762d9b8d5c6f0062 /src/cmd/vendor/github.com/google/pprof/profile
parent16c0f7e1524c40521312e485b0b0f8b26c95b174 (diff)
downloadgo-4be545115cf8ed42aa0337cbb6c3a92f718192b9.tar.xz
cmd/pprof: update vendored github.com/google/pprof
Pull in the latest published version of github.com/google/pprof as part of the continuous process of keeping Go's dependencies up to date. For #36905. [git-generate] cd src/cmd go get github.com/google/pprof@v0.0.0-20251114195745-4902fdda35c8 go mod tidy go mod vendor Change-Id: Id26eb632f637fb2c602d87cb83fdff7f099934ce Reviewed-on: https://go-review.googlesource.com/c/go/+/725500 Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Reviewed-by: Michael Pratt <mpratt@google.com>
Diffstat (limited to 'src/cmd/vendor/github.com/google/pprof/profile')
-rw-r--r--src/cmd/vendor/github.com/google/pprof/profile/proto.go19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/cmd/vendor/github.com/google/pprof/profile/proto.go b/src/cmd/vendor/github.com/google/pprof/profile/proto.go
index a15696ba16..31bf6bca63 100644
--- a/src/cmd/vendor/github.com/google/pprof/profile/proto.go
+++ b/src/cmd/vendor/github.com/google/pprof/profile/proto.go
@@ -36,6 +36,7 @@ package profile
import (
"errors"
"fmt"
+ "slices"
)
type buffer struct {
@@ -187,6 +188,16 @@ func le32(p []byte) uint32 {
return uint32(p[0]) | uint32(p[1])<<8 | uint32(p[2])<<16 | uint32(p[3])<<24
}
+func peekNumVarints(data []byte) (numVarints int) {
+ for ; len(data) > 0; numVarints++ {
+ var err error
+ if _, data, err = decodeVarint(data); err != nil {
+ break
+ }
+ }
+ return numVarints
+}
+
func decodeVarint(data []byte) (uint64, []byte, error) {
var u uint64
for i := 0; ; i++ {
@@ -286,6 +297,9 @@ func decodeInt64(b *buffer, x *int64) error {
func decodeInt64s(b *buffer, x *[]int64) error {
if b.typ == 2 {
// Packed encoding
+ dataLen := peekNumVarints(b.data)
+ *x = slices.Grow(*x, dataLen)
+
data := b.data
for len(data) > 0 {
var u uint64
@@ -316,8 +330,11 @@ func decodeUint64(b *buffer, x *uint64) error {
func decodeUint64s(b *buffer, x *[]uint64) error {
if b.typ == 2 {
- data := b.data
// Packed encoding
+ dataLen := peekNumVarints(b.data)
+ *x = slices.Grow(*x, dataLen)
+
+ data := b.data
for len(data) > 0 {
var u uint64
var err error