diff options
author | Mike Pall <mike> | 2014-01-31 20:44:27 +0100 |
---|---|---|
committer | Mike Pall <mike> | 2014-01-31 20:44:27 +0100 |
commit | a2abf2e09814f496fdffe444bb8fcd9c25d4b277 (patch) | |
tree | 01982bd4d1ccfb8e41061a61f69ff66eba016e72 | |
parent | 5a5a340f6e8aa315ba01f65c5f7659a4b75ed247 (diff) | |
download | luajit-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.c | 1 |
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); |