diff options
author | Mike Pall <mike> | 2010-02-03 14:55:56 +0100 |
---|---|---|
committer | Mike Pall <mike> | 2010-02-03 14:55:56 +0100 |
commit | 318e86c7eb53999783c0c4a3c6796d1a723dd024 (patch) | |
tree | 2f7521d190121fbf2fcbc8c15290fcd66434b45b /src/lj_trace.c | |
parent | c1c9abeab7f3716dda213c6048344e1bf4f58486 (diff) | |
download | luajit-318e86c7eb53999783c0c4a3c6796d1a723dd024.tar.gz luajit-318e86c7eb53999783c0c4a3c6796d1a723dd024.tar.bz2 luajit-318e86c7eb53999783c0c4a3c6796d1a723dd024.zip |
Clean up frame depth checks and loop detection.
Diffstat (limited to 'src/lj_trace.c')
-rw-r--r-- | src/lj_trace.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/lj_trace.c b/src/lj_trace.c index d1883ad2..ce313df3 100644 --- a/src/lj_trace.c +++ b/src/lj_trace.c | |||
@@ -491,7 +491,8 @@ static TValue *trace_state(lua_State *L, lua_CFunction dummy, void *ud) | |||
491 | 491 | ||
492 | case LJ_TRACE_END: | 492 | case LJ_TRACE_END: |
493 | J->loopref = 0; | 493 | J->loopref = 0; |
494 | if ((J->flags & JIT_F_OPT_LOOP) && J->cur.link == J->curtrace) { | 494 | if ((J->flags & JIT_F_OPT_LOOP) && |
495 | J->cur.link == J->curtrace && J->framedepth + J->retdepth == 0) { | ||
495 | setvmstate(J2G(J), OPT); | 496 | setvmstate(J2G(J), OPT); |
496 | lj_opt_dce(J); | 497 | lj_opt_dce(J); |
497 | if (lj_opt_loop(J)) { /* Loop optimization failed? */ | 498 | if (lj_opt_loop(J)) { /* Loop optimization failed? */ |