89 if (setjmp(lj.
b) == 0)
118 for (ci = L->
base_ci; ci <= L->ci; ci++) {
145 if (n <= L->stacksize)
166 lua_Hook hook = L->
hook;
172 ar.currentline = line;
173 if (event == LUA_HOOKTAILRET)
197 int actual = L->
top - base;
198 if (actual < nfixargs) {
200 for (; actual < nfixargs; ++actual)
205 for (i=0; i<actual; i++)
251 ci->
u.
l.savedpc = p->
code;
252 ci->
u.
l.tailcalls = 0;
265 ci->
top = L->
top + LUA_MINSTACK;
270 #ifdef LUA_COMPATUPVALUES
284 ptrdiff_t fr =
savestack(L, firstResult);
287 while (L->
ci->
u.
l.tailcalls--)
302 while (wanted != 0 && firstResult < L->top) {
328 if (firstResult == NULL)
340 int nargs = *
cast(
int *, ud);
354 nresults =
GETARG_C(*((ci-1)->u.l.savedpc - 1)) - 1;
356 if (nresults >= 0) L->
top = L->
ci->
top;
363 if (firstResult != NULL)
390 return resume_error(L,
"cannot resume non-suspended coroutine");
415 luaG_runerror(L,
"attempt to yield across metamethod/C-call boundary");
417 if ((ci-1)->state &
CI_C)
419 if (L->
top - nresults > L->
base) {
421 for (i=0; i<nresults; i++)
433 ptrdiff_t old_top, ptrdiff_t ef) {
435 unsigned short oldnCcalls = L->
nCcalls;
436 ptrdiff_t old_ci =
saveci(L, L->
ci);
438 ptrdiff_t old_errfunc = L->
errfunc;