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 */ |
