diff options
Diffstat (limited to 'src/pkg/runtime/mgc0.c')
-rw-r--r-- | src/pkg/runtime/mgc0.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/pkg/runtime/mgc0.c b/src/pkg/runtime/mgc0.c index 55c38a7e5..d4c414736 100644 --- a/src/pkg/runtime/mgc0.c +++ b/src/pkg/runtime/mgc0.c @@ -1805,7 +1805,7 @@ getgcmaskcb(Stkframe *frame, void *ctxt) Stkframe *frame0; frame0 = ctxt; - if(frame0->sp >= frame->varp - frame->sp && frame0->sp < frame->varp) { + if(frame->sp <= frame0->sp && frame0->sp < frame->varp) { *frame0 = *frame; return false; } @@ -1865,7 +1865,7 @@ runtime·getgcmask(byte *p, Type *t, byte **mask, uintptr *len) frame.fn = nil; frame.sp = (uintptr)p; cb = getgcmaskcb; - runtime·gentraceback((uintptr)runtime·getcallerpc(&p), (uintptr)runtime·getcallersp(&p), 0, g, 0, nil, 1000, &cb, &frame, false); + runtime·gentraceback(g->m->curg->sched.pc, g->m->curg->sched.sp, 0, g->m->curg, 0, nil, 1000, &cb, &frame, false); if(frame.fn != nil) { Func *f; StackMap *stackmap; |