summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMike Pall <mike>2013-12-09 00:29:56 +0100
committerMike Pall <mike>2013-12-09 00:29:56 +0100
commit0ded8e82a88fadb40b4dd7e6632311781f1b2f91 (patch)
treebf604581a779f35782c4f617eeea2254d50da5c5 /src
parent916f09d0a91155ce5ce1a78fdcd40ba42f61e493 (diff)
downloadluajit-0ded8e82a88fadb40b4dd7e6632311781f1b2f91.tar.gz
luajit-0ded8e82a88fadb40b4dd7e6632311781f1b2f91.tar.bz2
luajit-0ded8e82a88fadb40b4dd7e6632311781f1b2f91.zip
Fix call unroll checks in the presence of metamethod frames.
Diffstat (limited to 'src')
-rw-r--r--src/lj_record.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/lj_record.c b/src/lj_record.c
index 30b9efc1..154ff380 100644
--- a/src/lj_record.c
+++ b/src/lj_record.c
@@ -1389,6 +1389,7 @@ static void check_call_unroll(jit_State *J, TraceNo lnk)
1389 int32_t count = 0; 1389 int32_t count = 0;
1390 if ((J->pt->flags & PROTO_VARARG)) depth--; /* Vararg frame still missing. */ 1390 if ((J->pt->flags & PROTO_VARARG)) depth--; /* Vararg frame still missing. */
1391 for (; depth > 0; depth--) { /* Count frames with same prototype. */ 1391 for (; depth > 0; depth--) { /* Count frames with same prototype. */
1392 if (frame_iscont(frame)) depth--;
1392 frame = frame_prev(frame); 1393 frame = frame_prev(frame);
1393 if (mref(frame_func(frame)->l.pc, void) == pc) 1394 if (mref(frame_func(frame)->l.pc, void) == pc)
1394 count++; 1395 count++;