aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Pall <mike>2014-01-31 20:44:27 +0100
committerMike Pall <mike>2014-01-31 20:44:27 +0100
commita2abf2e09814f496fdffe444bb8fcd9c25d4b277 (patch)
tree01982bd4d1ccfb8e41061a61f69ff66eba016e72
parent5a5a340f6e8aa315ba01f65c5f7659a4b75ed247 (diff)
downloadluajit-a2abf2e09814f496fdffe444bb8fcd9c25d4b277.tar.gz
luajit-a2abf2e09814f496fdffe444bb8fcd9c25d4b277.tar.bz2
luajit-a2abf2e09814f496fdffe444bb8fcd9c25d4b277.zip
Don't start a trace on side exit to non-Lua function.
-rw-r--r--src/lj_trace.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/lj_trace.c b/src/lj_trace.c
index b4b3fc26..7bb6c8ae 100644
--- a/src/lj_trace.c
+++ b/src/lj_trace.c
@@ -682,6 +682,7 @@ static void trace_hotside(jit_State *J, const BCIns *pc)
682{ 682{
683 SnapShot *snap = &traceref(J, J->parent)->snap[J->exitno]; 683 SnapShot *snap = &traceref(J, J->parent)->snap[J->exitno];
684 if (!(J2G(J)->hookmask & (HOOK_GC|HOOK_VMEVENT)) && 684 if (!(J2G(J)->hookmask & (HOOK_GC|HOOK_VMEVENT)) &&
685 isluafunc(curr_func(J->L)) &&
685 snap->count != SNAPCOUNT_DONE && 686 snap->count != SNAPCOUNT_DONE &&
686 ++snap->count >= J->param[JIT_P_hotexit]) { 687 ++snap->count >= J->param[JIT_P_hotexit]) {
687 lua_assert(J->state == LJ_TRACE_IDLE); 688 lua_assert(J->state == LJ_TRACE_IDLE);