aboutsummaryrefslogtreecommitdiff
path: root/src/pkg/runtime/runtime.h
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2014-09-05 16:51:45 -0400
committerRuss Cox <rsc@golang.org>2014-09-05 16:51:45 -0400
commitf8f630f5ecb5e30c9feadab5277f393c58da71f6 (patch)
treeaa4b7ec09ae38d6fff0c7c0e9e85cccfc6b5a96c /src/pkg/runtime/runtime.h
parentfcbe51c9e3ecbb1cb5d8d50f64b0bc42a6a0c7f5 (diff)
downloadgo-f8f630f5ecb5e30c9feadab5277f393c58da71f6.tar.xz
runtime: use reflect.call during panic instead of newstackcall
newstackcall creates a new stack segment, and we want to be able to throw away all that code. LGTM=khr R=khr, iant CC=dvyukov, golang-codereviews, r https://golang.org/cl/139270043
Diffstat (limited to 'src/pkg/runtime/runtime.h')
-rw-r--r--src/pkg/runtime/runtime.h5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/pkg/runtime/runtime.h b/src/pkg/runtime/runtime.h
index b3d1a94221..4f279db3fb 100644
--- a/src/pkg/runtime/runtime.h
+++ b/src/pkg/runtime/runtime.h
@@ -452,7 +452,6 @@ struct Stktop
uint32 panicwrap;
uint8* argp; // pointer to arguments in old frame
- bool panic; // is this frame the top of a panic?
};
struct SigTab
{
@@ -658,6 +657,8 @@ struct Panic
Eface arg; // argument to panic
Panic* link; // link to earlier panic
Defer* defer; // current executing defer
+ uintptr argp; // pointer to arguments of deferred call, for recover
+ uint32 outerwrap; // outer gp->panicwrap
bool recovered; // whether this panic is over
bool aborted; // the panic was aborted
};
@@ -1015,8 +1016,6 @@ void runtime·printcomplex(Complex128);
/*
* runtime go-called
*/
-void runtime·newstackcall(FuncVal*, byte*, uint32);
-void reflect·call(FuncVal*, byte*, uint32, uint32);
void runtime·gopanic(Eface);
void runtime·panicindex(void);
void runtime·panicslice(void);