aboutsummaryrefslogtreecommitdiff
path: root/src/internal/profile
diff options
context:
space:
mode:
authorDaniel Martí <mvdan@mvdan.cc>2023-04-07 18:53:49 +0100
committerDaniel Martí <mvdan@mvdan.cc>2023-10-26 07:37:45 +0000
commit5fe2035927bc9fac8a375a96d9ef47735c10fba4 (patch)
tree0c225551372e7899fb6e6924d4fc34c89290d471 /src/internal/profile
parent555af99bcc6b7515ebad5a3c947f3e4ab147fd29 (diff)
downloadgo-5fe2035927bc9fac8a375a96d9ef47735c10fba4.tar.xz
internal/profile: actually return errors in postDecode
As spotted by staticcheck, the body did keep track of errors by sharing a single err variable, but its last value was never used as the function simply finished by returning nil. To prevent postDecode from erroring on empty profiles, which breaks TestEmptyProfile, add a check at the top of the function. Update the runtime/pprof test accordingly, since the default units didn't make sense for an empty profile anyway. Change-Id: I188cd8337434adf9169651ab5c914731b8b20f39 Reviewed-on: https://go-review.googlesource.com/c/go/+/483137 Reviewed-by: David Chase <drchase@google.com> Reviewed-by: Michael Pratt <mpratt@google.com> Reviewed-by: Cherry Mui <cherryyz@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Diffstat (limited to 'src/internal/profile')
-rw-r--r--src/internal/profile/encode.go5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/internal/profile/encode.go b/src/internal/profile/encode.go
index 77d77f1dfb..72d6fe2fa7 100644
--- a/src/internal/profile/encode.go
+++ b/src/internal/profile/encode.go
@@ -207,6 +207,9 @@ var profileDecoder = []decoder{
// suffix X) and populates the corresponding exported fields.
// The unexported fields are cleared up to facilitate testing.
func (p *Profile) postDecode() error {
+ if p.Empty() {
+ return nil
+ }
var err error
mappings := make(map[uint64]*Mapping)
@@ -291,7 +294,7 @@ func (p *Profile) postDecode() error {
p.commentX = nil
p.DefaultSampleType, err = getString(p.stringTable, &p.defaultSampleTypeX, err)
p.stringTable = nil
- return nil
+ return err
}
func (p *ValueType) decoder() []decoder {