diff options
author | Mike Pall <mike> | 2010-03-01 06:45:30 +0100 |
---|---|---|
committer | Mike Pall <mike> | 2010-03-01 06:45:30 +0100 |
commit | e7b737aa1202b06950b4ca4ec206b04bdd5a3681 (patch) | |
tree | 464258d534bfb05c1b8ee7d13cadc1422f689e4a /src/lj_dispatch.c | |
parent | 69ea553024155638c89bc12dca648c87a625ab5f (diff) | |
download | luajit-e7b737aa1202b06950b4ca4ec206b04bdd5a3681.tar.gz luajit-e7b737aa1202b06950b4ca4ec206b04bdd5a3681.tar.bz2 luajit-e7b737aa1202b06950b4ca4ec206b04bdd5a3681.zip |
Implement down-recursion.
Diffstat (limited to 'src/lj_dispatch.c')
-rw-r--r-- | src/lj_dispatch.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/src/lj_dispatch.c b/src/lj_dispatch.c index 83bb4fd8..f956aa1b 100644 --- a/src/lj_dispatch.c +++ b/src/lj_dispatch.c | |||
@@ -380,11 +380,8 @@ void LJ_FASTCALL lj_dispatch_ins(lua_State *L, const BCIns *pc) | |||
380 | L->top = L->base + slots; /* Fix top again. */ | 380 | L->top = L->base + slots; /* Fix top again. */ |
381 | } | 381 | } |
382 | } | 382 | } |
383 | if ((g->hookmask & LUA_MASKRET)) { | 383 | if ((g->hookmask & LUA_MASKRET) && bc_isret(bc_op(pc[-1]))) |
384 | BCOp op = bc_op(pc[-1]); | 384 | callhook(L, LUA_HOOKRET, -1); |
385 | if (op == BC_RETM || op == BC_RET || op == BC_RET0 || op == BC_RET1) | ||
386 | callhook(L, LUA_HOOKRET, -1); | ||
387 | } | ||
388 | } | 385 | } |
389 | 386 | ||
390 | /* Initialize call. Ensure stack space and clear missing parameters. */ | 387 | /* Initialize call. Ensure stack space and clear missing parameters. */ |