aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/panic.go
diff options
context:
space:
mode:
authorJosh Bleecher Snyder <josharian@gmail.com>2018-03-02 15:16:02 -0800
committerJosh Bleecher Snyder <josharian@gmail.com>2018-03-06 18:58:57 +0000
commitf7739c07c8f6ef9bfa28e8c4a4527b01cf3991bc (patch)
treed42a076d335c7e41684ad3f033e9279a5643c959 /src/runtime/panic.go
parent4599419e690628dd798c8d037bba4efd8d0b7391 (diff)
downloadgo-f7739c07c8f6ef9bfa28e8c4a4527b01cf3991bc.tar.xz
runtime: skip pointless writes in freedefer
Change-Id: I501a0e5c87ec88616c7dcdf1b723758b6df6c088 Reviewed-on: https://go-review.googlesource.com/98758 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Diffstat (limited to 'src/runtime/panic.go')
-rw-r--r--src/runtime/panic.go5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/runtime/panic.go b/src/runtime/panic.go
index dac63203fb..715e802d10 100644
--- a/src/runtime/panic.go
+++ b/src/runtime/panic.go
@@ -280,8 +280,9 @@ func freedefer(d *_defer) {
d.started = false
d.sp = 0
d.pc = 0
- d.fn = nil
- d._panic = nil
+ // d._panic and d.fn must be nil already.
+ // If not, we would have called freedeferpanic or freedeferfn above,
+ // both of which throw.
d.link = nil
pp.deferpool[sc] = append(pp.deferpool[sc], d)