runtime: rename _defer struct _panic field to panicStack

The gc version of the _defer struct has a _panic field that has a
    completely different meaning. We are going to want that bring that new
    meaning into the gofrontend to improve panic reports with nested
    panic calls. Simplify that by first renaming the existing _panic field.
    
    Reviewed-on: https://go-review.googlesource.com/46454

From-SVN: r249558
This commit is contained in:
Ian Lance Taylor 2017-06-22 14:31:16 +00:00
parent ed99905e1d
commit b92e4dff0a
3 changed files with 11 additions and 11 deletions

View File

@ -1,4 +1,4 @@
a81079a81b63714221674f07d13bedc768092f27
a459f1fdfe0bd365bf2def730e1529052c6487fd
The first line of this file holds the git revision number of the last
merge done from the gofrontend repository.

View File

@ -90,13 +90,13 @@ func throwinit() {
// pfn is a C function pointer.
// arg is a value to pass to pfn.
func deferproc(frame *bool, pfn uintptr, arg unsafe.Pointer) {
n := newdefer()
n.frame = frame
n._panic = getg()._panic
n.pfn = pfn
n.arg = arg
n.retaddr = 0
n.makefunccanrecover = false
d := newdefer()
d.frame = frame
d.panicStack = getg()._panic
d.pfn = pfn
d.arg = arg
d.retaddr = 0
d.makefunccanrecover = false
}
// Allocate a Defer, usually using per-P pool.
@ -502,7 +502,7 @@ func currentDefer() *_defer {
// the panic stack. We do not want to recover it if that panic
// was on the top of the panic stack when this function was
// deferred.
if d._panic == gp._panic {
if d.panicStack == gp._panic {
return nil
}
@ -731,7 +731,7 @@ func gorecover() interface{} {
// function like recover.
func deferredrecover() interface{} {
gp := getg()
if gp._defer == nil || gp._defer._panic != gp._panic {
if gp._defer == nil || gp._defer.panicStack != gp._panic {
return nil
}
return gorecover()

View File

@ -698,7 +698,7 @@ type _defer struct {
// deferred. This function can not recover this value from
// the panic stack. This can happen if a deferred function
// has a defer statement itself.
_panic *_panic
panicStack *_panic
// The function to call.
pfn uintptr