From c1c9abeab7f3716dda213c6048344e1bf4f58486 Mon Sep 17 00:00:00 2001 From: Mike Pall Date: Wed, 3 Feb 2010 14:34:30 +0100 Subject: [PATCH] Add extra check to suppress hotcall event during recording. --- src/lj_trace.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/lj_trace.c b/src/lj_trace.c index b2b35373..d1883ad2 100644 --- a/src/lj_trace.c +++ b/src/lj_trace.c @@ -551,8 +551,9 @@ static void trace_new(jit_State *J) void LJ_FASTCALL lj_trace_hot(jit_State *J, const BCIns *pc) { hotcount_set(J2GG(J), pc, J->param[JIT_P_hotloop]+1); /* Reset hotcount. */ - /* Only start a new trace if not inside __gc call or vmevent. */ - if (!(J2G(J)->hookmask & (HOOK_GC|HOOK_VMEVENT))) { + /* Only start a new trace if not recording or inside __gc call or vmevent. */ + if (J->state == LJ_TRACE_IDLE && + !(J2G(J)->hookmask & (HOOK_GC|HOOK_VMEVENT))) { lua_State *L = J->L; L->top = curr_topL(L); /* Only called from Lua and NRESULTS is not used. */ J->parent = 0; /* Root trace. */