diff options
author | Mike Pall <mike> | 2013-05-02 02:04:41 +0200 |
---|---|---|
committer | Mike Pall <mike> | 2013-05-02 02:04:41 +0200 |
commit | 5d6db413ae9e93b8b6c32802fed82a91427d1966 (patch) | |
tree | 7562d35e87541c3b3cb7bdb21c81eecc0663b77c | |
parent | 09aeca6abf40b246b47e7d83851661294946785c (diff) | |
download | luajit-5d6db413ae9e93b8b6c32802fed82a91427d1966.tar.gz luajit-5d6db413ae9e93b8b6c32802fed82a91427d1966.tar.bz2 luajit-5d6db413ae9e93b8b6c32802fed82a91427d1966.zip |
FFI: Fix tailcall in lowest frame to C function with bool result.
-rw-r--r-- | src/lj_crecord.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/lj_crecord.c b/src/lj_crecord.c index b60eb7b3..2d630c85 100644 --- a/src/lj_crecord.c +++ b/src/lj_crecord.c | |||
@@ -1084,7 +1084,7 @@ static void crec_snap_caller(jit_State *J) | |||
1084 | const BCIns *pc = J->pc; | 1084 | const BCIns *pc = J->pc; |
1085 | TRef ftr = J->base[-1]; | 1085 | TRef ftr = J->base[-1]; |
1086 | ptrdiff_t delta; | 1086 | ptrdiff_t delta; |
1087 | if (!frame_islua(base-1)) | 1087 | if (!frame_islua(base-1) || J->framedepth <= 0) |
1088 | lj_trace_err(J, LJ_TRERR_NYICALL); | 1088 | lj_trace_err(J, LJ_TRERR_NYICALL); |
1089 | J->pc = frame_pc(base-1); delta = 1+bc_a(J->pc[-1]); | 1089 | J->pc = frame_pc(base-1); delta = 1+bc_a(J->pc[-1]); |
1090 | L->top = base; L->base = base - delta; | 1090 | L->top = base; L->base = base - delta; |