diff options
Diffstat (limited to 'ldo.c')
-rw-r--r-- | ldo.c | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -641,11 +641,11 @@ static int recover (lua_State *L, int status) { | |||
641 | if (ci == NULL) return 0; /* no recovery point */ | 641 | if (ci == NULL) return 0; /* no recovery point */ |
642 | /* "finish" luaD_pcall */ | 642 | /* "finish" luaD_pcall */ |
643 | oldtop = restorestack(L, ci->u2.funcidx); | 643 | oldtop = restorestack(L, ci->u2.funcidx); |
644 | luaF_close(L, oldtop, status); /* may change the stack */ | ||
645 | oldtop = restorestack(L, ci->u2.funcidx); | ||
646 | luaD_seterrorobj(L, status, oldtop); | ||
647 | L->ci = ci; | 644 | L->ci = ci; |
648 | L->allowhook = getoah(ci->callstatus); /* restore original 'allowhook' */ | 645 | L->allowhook = getoah(ci->callstatus); /* restore original 'allowhook' */ |
646 | status = luaF_close(L, oldtop, status); /* may change the stack */ | ||
647 | oldtop = restorestack(L, ci->u2.funcidx); | ||
648 | luaD_seterrorobj(L, status, oldtop); | ||
649 | luaD_shrinkstack(L); /* restore stack size in case of overflow */ | 649 | luaD_shrinkstack(L); /* restore stack size in case of overflow */ |
650 | L->errfunc = ci->u.c.old_errfunc; | 650 | L->errfunc = ci->u.c.old_errfunc; |
651 | return 1; /* continue running the coroutine */ | 651 | return 1; /* continue running the coroutine */ |