diff options
author | Mike Pall <mike> | 2015-05-20 16:43:41 +0200 |
---|---|---|
committer | Mike Pall <mike> | 2015-05-20 16:43:41 +0200 |
commit | 4a146cac9a00f5a1a7877db847ff5ba03e7b7256 (patch) | |
tree | 040900d773a8d86ad6eff39af05cb880e4b8aedb /src | |
parent | bca5da8849fb3585be86ddb2463f3b6d3a9d63f3 (diff) | |
download | luajit-4a146cac9a00f5a1a7877db847ff5ba03e7b7256.tar.gz luajit-4a146cac9a00f5a1a7877db847ff5ba03e7b7256.tar.bz2 luajit-4a146cac9a00f5a1a7877db847ff5ba03e7b7256.zip |
LJ_GC64: Fix frame unwinding.
Diffstat (limited to 'src')
-rw-r--r-- | src/lj_err.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/lj_err.c b/src/lj_err.c index 4f134941..26210f54 100644 --- a/src/lj_err.c +++ b/src/lj_err.c | |||
@@ -119,7 +119,7 @@ static void *err_unwind(lua_State *L, void *stopcf, int errcode) | |||
119 | if (errcode) { | 119 | if (errcode) { |
120 | L->base = frame_prevd(frame) + 1; | 120 | L->base = frame_prevd(frame) + 1; |
121 | L->cframe = cframe_prev(cf); | 121 | L->cframe = cframe_prev(cf); |
122 | unwindstack(L, frame); | 122 | unwindstack(L, frame - LJ_FR2); |
123 | } else if (cf != stopcf) { | 123 | } else if (cf != stopcf) { |
124 | cf = cframe_prev(cf); | 124 | cf = cframe_prev(cf); |
125 | frame = frame_prevd(frame); | 125 | frame = frame_prevd(frame); |
@@ -144,7 +144,7 @@ static void *err_unwind(lua_State *L, void *stopcf, int errcode) | |||
144 | if (errcode) { | 144 | if (errcode) { |
145 | L->base = frame_prevd(frame) + 1; | 145 | L->base = frame_prevd(frame) + 1; |
146 | L->cframe = cframe_prev(cf); | 146 | L->cframe = cframe_prev(cf); |
147 | unwindstack(L, frame); | 147 | unwindstack(L, frame - LJ_FR2); |
148 | } | 148 | } |
149 | return cf; | 149 | return cf; |
150 | case FRAME_CONT: /* Continuation frame. */ | 150 | case FRAME_CONT: /* Continuation frame. */ |