diff options
Diffstat (limited to 'src/3rdParty/lua/ldo.c')
| -rw-r--r-- | src/3rdParty/lua/ldo.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/3rdParty/lua/ldo.c b/src/3rdParty/lua/ldo.c index bd8d965..ea05295 100644 --- a/src/3rdParty/lua/ldo.c +++ b/src/3rdParty/lua/ldo.c | |||
| @@ -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 | } |
