diff options
Diffstat (limited to 'ldo.c')
-rw-r--r-- | ldo.c | 4 |
1 files changed, 4 insertions, 0 deletions
@@ -792,6 +792,10 @@ static void resume (lua_State *L, void *ud) { | |||
792 | lua_assert(L->status == LUA_YIELD); | 792 | lua_assert(L->status == LUA_YIELD); |
793 | L->status = LUA_OK; /* mark that it is running (again) */ | 793 | L->status = LUA_OK; /* mark that it is running (again) */ |
794 | if (isLua(ci)) { /* yielded inside a hook? */ | 794 | if (isLua(ci)) { /* yielded inside a hook? */ |
795 | /* undo increment made by 'luaG_traceexec': instruction was not | ||
796 | executed yet */ | ||
797 | lua_assert(ci->callstatus & CIST_HOOKYIELD); | ||
798 | ci->u.l.savedpc--; | ||
795 | L->top.p = firstArg; /* discard arguments */ | 799 | L->top.p = firstArg; /* discard arguments */ |
796 | luaV_execute(L, ci); /* just continue running Lua code */ | 800 | luaV_execute(L, ci); /* just continue running Lua code */ |
797 | } | 801 | } |