• Home
  • Raw
  • Download

Lines Matching refs:ci

130         if (L->ci->top < L->top)  in luaD_throw()
131 L->ci->top = L->top; /* pushing msg. can break this invariant */ in luaD_throw()
165 CallInfo *ci; in correctstack() local
172 for (ci = L->ci; ci != NULL; ci = ci->previous) { in correctstack()
173 ci->top = (ci->top - oldstack) + newstack; in correctstack()
174 ci->func = (ci->func - oldstack) + newstack; in correctstack()
175 if (isLua(ci)) in correctstack()
176 ci->u.l.trap = 1; /* signal to update 'trap' in 'luaV_execute' */ in correctstack()
236 CallInfo *ci; in stackinuse() local
238 for (ci = L->ci; ci != NULL; ci = ci->previous) { in stackinuse()
239 if (lim < ci->top) lim = ci->top; in stackinuse()
279 CallInfo *ci = L->ci; in luaD_hook() local
281 ptrdiff_t ci_top = savestack(L, ci->top); in luaD_hook()
285 ar.i_ci = ci; in luaD_hook()
288 ci->u2.transferinfo.ftransfer = ftransfer; in luaD_hook()
289 ci->u2.transferinfo.ntransfer = ntransfer; in luaD_hook()
292 if (L->top + LUA_MINSTACK > ci->top) in luaD_hook()
293 ci->top = L->top + LUA_MINSTACK; in luaD_hook()
295 ci->callstatus |= mask; in luaD_hook()
301 ci->top = restorestack(L, ci_top); in luaD_hook()
303 ci->callstatus &= ~mask; in luaD_hook()
313 void luaD_hookcall (lua_State *L, CallInfo *ci) { in luaD_hookcall() argument
314 int hook = (ci->callstatus & CIST_TAIL) ? LUA_HOOKTAILCALL : LUA_HOOKCALL; in luaD_hookcall()
318 p = clLvalue(s2v(ci->func))->p; in luaD_hookcall()
319 L->top = ci->top; /* prepare top */ in luaD_hookcall()
320 ci->u.l.savedpc++; /* hooks assume 'pc' is already incremented */ in luaD_hookcall()
322 ci->u.l.savedpc--; /* correct 'pc' */ in luaD_hookcall()
326 static StkId rethook (lua_State *L, CallInfo *ci, StkId firstres, int nres) { in rethook() argument
329 if (isLuacode(ci)) { in rethook()
330 Proto *p = ci_func(ci)->p; in rethook()
332 delta = ci->u.l.nextraargs + p->numparams + 1; in rethook()
333 if (L->top < ci->top) in rethook()
334 L->top = ci->top; /* correct top to run hook */ in rethook()
338 ci->func += delta; /* if vararg, back to virtual 'func' */ in rethook()
339 ftransfer = cast(unsigned short, firstres - ci->func); in rethook()
341 ci->func -= delta; in rethook()
343 if (isLua(ci = ci->previous)) in rethook()
344 L->oldpc = pcRel(ci->u.l.savedpc, ci_func(ci)->p); /* update 'oldpc' */ in rethook()
414 void luaD_poscall (lua_State *L, CallInfo *ci, int nres) { in luaD_poscall() argument
416 L->top = rethook(L, ci, L->top - nres, nres); in luaD_poscall()
417 L->ci = ci->previous; /* back to caller */ in luaD_poscall()
419 moveresults(L, ci->func, nres, ci->nresults); in luaD_poscall()
424 #define next_ci(L) (L->ci->next ? L->ci->next : luaE_extendCI(L))
432 void luaD_pretailcall (lua_State *L, CallInfo *ci, StkId func, int narg1) { in luaD_pretailcall() argument
438 setobjs2s(L, ci->func + i, func + i); in luaD_pretailcall()
440 func = ci->func; /* moved-down function */ in luaD_pretailcall()
443 ci->top = func + 1 + fsize; /* top for new function */ in luaD_pretailcall()
444 lua_assert(ci->top <= L->stack_last); in luaD_pretailcall()
445 ci->u.l.savedpc = p->code; /* starting point */ in luaD_pretailcall()
446 ci->callstatus |= CIST_TAIL; in luaD_pretailcall()
468 CallInfo *ci; in luaD_call() local
470 L->ci = ci = next_ci(L); in luaD_call()
471 ci->nresults = nresults; in luaD_call()
472 ci->callstatus = CIST_C; in luaD_call()
473 ci->top = L->top + LUA_MINSTACK; in luaD_call()
474 ci->func = func; in luaD_call()
475 lua_assert(ci->top <= L->stack_last); in luaD_call()
484 luaD_poscall(L, ci, n); in luaD_call()
488 CallInfo *ci; in luaD_call() local
494 L->ci = ci = next_ci(L); in luaD_call()
495 ci->nresults = nresults; in luaD_call()
496 ci->u.l.savedpc = p->code; /* starting point */ in luaD_call()
497 ci->callstatus = 0; in luaD_call()
498 ci->top = func + 1 + fsize; in luaD_call()
499 ci->func = func; in luaD_call()
500 L->ci = ci; in luaD_call()
503 lua_assert(ci->top <= L->stack_last); in luaD_call()
504 luaV_execute(L, ci); /* run the function */ in luaD_call()
535 CallInfo *ci = L->ci; in finishCcall() local
538 lua_assert(ci->u.c.k != NULL && yieldable(L)); in finishCcall()
540 lua_assert((ci->callstatus & CIST_YPCALL) || status == LUA_YIELD); in finishCcall()
541 if (ci->callstatus & CIST_YPCALL) { /* was inside a pcall? */ in finishCcall()
542 ci->callstatus &= ~CIST_YPCALL; /* continuation is also inside it */ in finishCcall()
543 L->errfunc = ci->u.c.old_errfunc; /* with the same error function */ in finishCcall()
547 adjustresults(L, ci->nresults); in finishCcall()
549 n = (*ci->u.c.k)(L, status, ci->u.c.ctx); /* call continuation function */ in finishCcall()
552 luaD_poscall(L, ci, n); /* finish 'luaD_call' */ in finishCcall()
565 CallInfo *ci; in unroll() local
568 while ((ci = L->ci) != &L->base_ci) { /* something in the stack */ in unroll()
569 if (!isLua(ci)) /* C function? */ in unroll()
573 luaV_execute(L, ci); /* execute down to higher C 'boundary' */ in unroll()
584 CallInfo *ci; in findpcall() local
585 for (ci = L->ci; ci != NULL; ci = ci->previous) { /* search for a pcall */ in findpcall()
586 if (ci->callstatus & CIST_YPCALL) in findpcall()
587 return ci; in findpcall()
600 CallInfo *ci = findpcall(L); in recover() local
601 if (ci == NULL) return 0; /* no recovery point */ in recover()
603 oldtop = restorestack(L, ci->u2.funcidx); in recover()
605 oldtop = restorestack(L, ci->u2.funcidx); in recover()
607 L->ci = ci; in recover()
608 L->allowhook = getoah(ci->callstatus); /* restore original 'allowhook' */ in recover()
610 L->errfunc = ci->u.c.old_errfunc; in recover()
639 CallInfo *ci = L->ci; in resume() local
646 if (isLua(ci)) /* yielded inside a hook? */ in resume()
647 luaV_execute(L, ci); /* just continue running Lua code */ in resume()
649 if (ci->u.c.k != NULL) { /* does it have a continuation function? */ in resume()
651 n = (*ci->u.c.k)(L, LUA_YIELD, ci->u.c.ctx); /* call continuation */ in resume()
655 luaD_poscall(L, ci, n); /* finish 'luaD_call' */ in resume()
666 if (L->ci != &L->base_ci) /* not in base level? */ in lua_resume()
668 else if (L->top - (L->ci->func + 1) == nargs) /* no function? */ in lua_resume()
692 L->ci->top = L->top; in lua_resume()
694 *nresults = (status == LUA_YIELD) ? L->ci->u2.nyield in lua_resume()
695 : cast_int(L->top - (L->ci->func + 1)); in lua_resume()
708 CallInfo *ci; in lua_yieldk() local
711 ci = L->ci; in lua_yieldk()
720 if (isLua(ci)) { /* inside a hook? */ in lua_yieldk()
721 lua_assert(!isLuacode(ci)); in lua_yieldk()
723 ci->u2.nyield = 0; /* no results */ in lua_yieldk()
726 if ((ci->u.c.k = k) != NULL) /* is there a continuation? */ in lua_yieldk()
727 ci->u.c.ctx = ctx; /* save context */ in lua_yieldk()
728 ci->u2.nyield = nresults; /* save number of results */ in lua_yieldk()
731 lua_assert(ci->callstatus & CIST_HOOKED); /* must be inside a hook */ in lua_yieldk()
745 CallInfo *old_ci = L->ci; in luaD_pcall()
752 L->ci = old_ci; in luaD_pcall()