diff options
| author | Russ Cox <rsc@golang.org> | 2013-06-27 16:51:06 -0400 |
|---|---|---|
| committer | Russ Cox <rsc@golang.org> | 2013-06-27 16:51:06 -0400 |
| commit | f0d73fbc7c24ea9d81f24732896a99778f623f80 (patch) | |
| tree | d108e3e4ac65ffd4c4142b69dc6902f2317b3318 /src/pkg/runtime/stack.c | |
| parent | 4eb17ecd1f1c5d130a0fe5c6bbd03714d315c41a (diff) | |
| download | go-f0d73fbc7c24ea9d81f24732896a99778f623f80.tar.xz | |
runtime: use gp->sched.sp for stack overflow check
On x86 it is a few words lower on the stack than m->morebuf.sp
so it is a more precise check. Enabling the check requires recording
a valid gp->sched in reflect.call too. This is a good thing in general,
since it will make stack traces during reflect.call work better, and it
may be useful for preemption too.
R=dvyukov
CC=golang-dev
https://golang.org/cl/10709043
Diffstat (limited to 'src/pkg/runtime/stack.c')
| -rw-r--r-- | src/pkg/runtime/stack.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/pkg/runtime/stack.c b/src/pkg/runtime/stack.c index 5480c46970..16dfa041a0 100644 --- a/src/pkg/runtime/stack.c +++ b/src/pkg/runtime/stack.c @@ -215,7 +215,7 @@ runtime·newstack(void) if(!reflectcall) runtime·rewindmorestack(&gp->sched); - sp = m->morebuf.sp; + sp = gp->sched.sp; if(thechar == '6' || thechar == '8') { // The call to morestack cost a word. sp -= sizeof(uintptr); |
