]> Cypherpunks repositories - gostls13.git/commitdiff
testing: callerName only needs one PC in the traceback
authorKeith Randall <keithr@alum.mit.edu>
Fri, 17 May 2019 20:31:12 +0000 (13:31 -0700)
committerKeith Randall <khr@golang.org>
Fri, 17 May 2019 22:32:30 +0000 (22:32 +0000)
callerName requested 2 PCs from Callers, and that causes
both to be looked up in the file/line mapping.
We really only need to do the work for one PC.
(And in fact the caller doesn't need file/line at all, but
the Callers API can't express that.)

We used to request 2 PCs because in 1.11 and earlier we
stored an inline skip count in the second entry.
That's not necessary any more (as of 1.12).

Fixes #32093

Change-Id: I7b272626ef6496e848ee8af388cdaafd2556857b
Reviewed-on: https://go-review.googlesource.com/c/go/+/177858
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Caleb Spare <cespare@gmail.com>
src/testing/testing.go

index 753de9f27c4c84a7c031c5c27c9a1bb3de4fb5d7..339df13f439ada9cae4df878f3e664607128626a 100644 (file)
@@ -771,7 +771,7 @@ func (c *common) Helper() {
 // for the caller after skip frames (where 0 means the current function).
 func callerName(skip int) string {
        // Make room for the skip PC.
-       var pc [2]uintptr
+       var pc [1]uintptr
        n := runtime.Callers(skip+2, pc[:]) // skip + runtime.Callers + callerName
        if n == 0 {
                panic("testing: zero callers found")