diff options
author | Russ Cox <rsc@golang.org> | 2010-10-14 10:45:32 -0400 |
---|---|---|
committer | Russ Cox <rsc@golang.org> | 2010-10-14 10:45:32 -0400 |
commit | 9b15ad8c228c51ba70ffea24434a337956799067 (patch) | |
tree | c767d54d2163d8cb0165113745262768c4485112 | |
parent | 1748dc34e7b59c77934e8ebbd3e268e190882614 (diff) | |
download | go-9b15ad8c228c51ba70ffea24434a337956799067.tar.gz go-9b15ad8c228c51ba70ffea24434a337956799067.zip |
arm: adjust recover for new reflect.call
R=ken2
CC=golang-dev
https://golang.org/cl/2471043
-rw-r--r-- | src/pkg/runtime/proc.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/pkg/runtime/proc.c b/src/pkg/runtime/proc.c index 794e767498..d898b30b37 100644 --- a/src/pkg/runtime/proc.c +++ b/src/pkg/runtime/proc.c @@ -3,6 +3,7 @@ // license that can be found in the LICENSE file. #include "runtime.h" +#include "arch.h" #include "defs.h" #include "malloc.h" #include "os.h" @@ -1001,7 +1002,10 @@ void // take defer off list in case of recursive panic g->defer = d->link; g->ispanic = true; // rock for newstack, where reflect.call ends up - reflect·call(d->fn, d->args, d->siz); + if(thechar == '5') + reflect·call(d->fn, d->args+4, d->siz-4); // reflect.call does not expect LR + else + reflect·call(d->fn, d->args, d->siz); if(p->recovered) { g->panic = p->link; free(p); |