aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMike Pall <mike>2013-05-02 02:04:41 +0200
committerMike Pall <mike>2013-05-02 02:04:41 +0200
commit5d6db413ae9e93b8b6c32802fed82a91427d1966 (patch)
tree7562d35e87541c3b3cb7bdb21c81eecc0663b77c /src
parent09aeca6abf40b246b47e7d83851661294946785c (diff)
downloadluajit-5d6db413ae9e93b8b6c32802fed82a91427d1966.tar.gz
luajit-5d6db413ae9e93b8b6c32802fed82a91427d1966.tar.bz2
luajit-5d6db413ae9e93b8b6c32802fed82a91427d1966.zip
FFI: Fix tailcall in lowest frame to C function with bool result.
Diffstat (limited to 'src')
-rw-r--r--src/lj_crecord.c2
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;