diff options
| author | Felix Geisendörfer <felix.geisendoerfer@datadoghq.com> | 2024-08-27 20:46:33 +0200 |
|---|---|---|
| committer | Michael Knyszek <mknyszek@google.com> | 2024-09-23 15:02:19 +0000 |
| commit | 89a5a60da623ca9e7f91a93cd34b35785e30ab7e (patch) | |
| tree | cc8a8a2ee862115fab3c011d34bf3f4f46e16161 /src/cmd | |
| parent | cfbd2e7b40fac7809a404c49c46106e259078a61 (diff) | |
| download | go-89a5a60da623ca9e7f91a93cd34b35785e30ab7e.tar.xz | |
internal/trace: refactor Stack.Frames to return iter.Seq
The Frames function is almost an iter.Seq, except for its bool return
value.
Since none of the callers in the Go tree rely on the bool, we can remove
it. However, doing so might still obscure the intended usage as an iterator.
This refactor changes the API to return iter.Seq, making the intended
usage explicit. Refactoring the existing callers to take advantage of
the new interface will be done in a follow-up CL.
Change-Id: I03e4d6d762910e418cc37d59a6c519eb7f39b3b0
Reviewed-on: https://go-review.googlesource.com/c/go/+/608855
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Diffstat (limited to 'src/cmd')
| -rw-r--r-- | src/cmd/trace/gstate.go | 2 | ||||
| -rw-r--r-- | src/cmd/trace/pprof.go | 4 | ||||
| -rw-r--r-- | src/cmd/trace/regions.go | 2 | ||||
| -rw-r--r-- | src/cmd/trace/viewer.go | 2 |
4 files changed, 5 insertions, 5 deletions
diff --git a/src/cmd/trace/gstate.go b/src/cmd/trace/gstate.go index 638d492670..76c58073b3 100644 --- a/src/cmd/trace/gstate.go +++ b/src/cmd/trace/gstate.go @@ -364,7 +364,7 @@ func (gs *gState[R]) rangeEnd(ts trace.Time, name string, stack trace.Stack, ctx func lastFunc(s trace.Stack) string { var last trace.StackFrame - s.Frames(func(f trace.StackFrame) bool { + s.Frames()(func(f trace.StackFrame) bool { last = f return true }) diff --git a/src/cmd/trace/pprof.go b/src/cmd/trace/pprof.go index c3e5a3a045..856b97b75f 100644 --- a/src/cmd/trace/pprof.go +++ b/src/cmd/trace/pprof.go @@ -307,7 +307,7 @@ func (m *stackMap) profile() []traceviewer.ProfileRecord { for stack, record := range m.stacks { rec := *record i := 0 - stack.Frames(func(frame trace.StackFrame) bool { + stack.Frames()(func(frame trace.StackFrame) bool { rec.Stack = append(rec.Stack, &trace.Frame{ PC: frame.PC, Fn: frame.Func, @@ -327,7 +327,7 @@ func (m *stackMap) profile() []traceviewer.ProfileRecord { // pcsForStack extracts the first pprofMaxStack PCs from stack into pcs. func pcsForStack(stack trace.Stack, pcs *[pprofMaxStack]uint64) { i := 0 - stack.Frames(func(frame trace.StackFrame) bool { + stack.Frames()(func(frame trace.StackFrame) bool { pcs[i] = frame.PC i++ return i < len(pcs) diff --git a/src/cmd/trace/regions.go b/src/cmd/trace/regions.go index cb04190fd8..cae38355a5 100644 --- a/src/cmd/trace/regions.go +++ b/src/cmd/trace/regions.go @@ -72,7 +72,7 @@ func fingerprintRegion(r *trace.UserRegionSummary) regionFingerprint { func regionTopStackFrame(r *trace.UserRegionSummary) trace.StackFrame { var frame trace.StackFrame if r.Start != nil && r.Start.Stack() != trace.NoStack { - r.Start.Stack().Frames(func(f trace.StackFrame) bool { + r.Start.Stack().Frames()(func(f trace.StackFrame) bool { frame = f return false }) diff --git a/src/cmd/trace/viewer.go b/src/cmd/trace/viewer.go index 79c9583b0d..c367c7d636 100644 --- a/src/cmd/trace/viewer.go +++ b/src/cmd/trace/viewer.go @@ -15,7 +15,7 @@ import ( // used to store the frames to reduce allocations. func viewerFrames(stk trace.Stack) []*trace.Frame { var frames []*trace.Frame - stk.Frames(func(f trace.StackFrame) bool { + stk.Frames()(func(f trace.StackFrame) bool { frames = append(frames, &trace.Frame{ PC: f.PC, Fn: f.Func, |
