• Home
  • Raw
  • Download

Lines Matching refs:ci

125         if (L->ci->top < L->top)  in luaD_throw()
126 L->ci->top = L->top; /* pushing msg. can break this invariant */ in luaD_throw()
159 CallInfo *ci; in correctstack() local
164 for (ci = L->ci; ci != NULL; ci = ci->previous) { in correctstack()
165 ci->top = (ci->top - oldstack) + L->stack; in correctstack()
166 ci->func = (ci->func - oldstack) + L->stack; in correctstack()
167 if (isLua(ci)) in correctstack()
168 ci->u.l.base = (ci->u.l.base - oldstack) + L->stack; in correctstack()
211 CallInfo *ci; in stackinuse() local
213 for (ci = L->ci; ci != NULL; ci = ci->previous) { in stackinuse()
214 if (lim < ci->top) lim = ci->top; in stackinuse()
256 CallInfo *ci = L->ci; in luaD_hook() local
258 ptrdiff_t ci_top = savestack(L, ci->top); in luaD_hook()
262 ar.i_ci = ci; in luaD_hook()
264 ci->top = L->top + LUA_MINSTACK; in luaD_hook()
265 lua_assert(ci->top <= L->stack_last); in luaD_hook()
267 ci->callstatus |= CIST_HOOKED; in luaD_hook()
273 ci->top = restorestack(L, ci_top); in luaD_hook()
275 ci->callstatus &= ~CIST_HOOKED; in luaD_hook()
280 static void callhook (lua_State *L, CallInfo *ci) { in callhook() argument
282 ci->u.l.savedpc++; /* hooks assume 'pc' is already incremented */ in callhook()
283 if (isLua(ci->previous) && in callhook()
284 GET_OPCODE(*(ci->previous->u.l.savedpc - 1)) == OP_TAILCALL) { in callhook()
285 ci->callstatus |= CIST_TAIL; in callhook()
289 ci->u.l.savedpc--; /* correct 'pc' */ in callhook()
376 int luaD_poscall (lua_State *L, CallInfo *ci, StkId firstResult, int nres) { in luaD_poscall() argument
378 int wanted = ci->nresults; in luaD_poscall()
385 L->oldpc = ci->previous->u.l.savedpc; /* 'oldpc' for caller function */ in luaD_poscall()
387 res = ci->func; /* res == final position of 1st result */ in luaD_poscall()
388 L->ci = ci->previous; /* back to caller */ in luaD_poscall()
395 #define next_ci(L) (L->ci = (L->ci->next ? L->ci->next : luaE_extendCI(L)))
415 CallInfo *ci; in luaD_precall() local
425 ci = next_ci(L); /* now 'enter' new function */ in luaD_precall()
426 ci->nresults = nresults; in luaD_precall()
427 ci->func = func; in luaD_precall()
428 ci->top = L->top + LUA_MINSTACK; in luaD_precall()
429 lua_assert(ci->top <= L->stack_last); in luaD_precall()
430 ci->callstatus = 0; in luaD_precall()
437 luaD_poscall(L, ci, L->top - n, n); in luaD_precall()
453 ci = next_ci(L); /* now 'enter' new function */ in luaD_precall()
454 ci->nresults = nresults; in luaD_precall()
455 ci->func = func; in luaD_precall()
456 ci->u.l.base = base; in luaD_precall()
457 L->top = ci->top = base + fsize; in luaD_precall()
458 lua_assert(ci->top <= L->stack_last); in luaD_precall()
459 ci->u.l.savedpc = p->code; /* starting point */ in luaD_precall()
460 ci->callstatus = CIST_LUA; in luaD_precall()
462 callhook(L, ci); in luaD_precall()
519 CallInfo *ci = L->ci; in finishCcall() local
522 lua_assert(ci->u.c.k != NULL && L->nny == 0); in finishCcall()
524 lua_assert((ci->callstatus & CIST_YPCALL) || status == LUA_YIELD); in finishCcall()
525 if (ci->callstatus & CIST_YPCALL) { /* was inside a pcall? */ in finishCcall()
526 ci->callstatus &= ~CIST_YPCALL; /* continuation is also inside it */ in finishCcall()
527 L->errfunc = ci->u.c.old_errfunc; /* with the same error function */ in finishCcall()
531 adjustresults(L, ci->nresults); in finishCcall()
533 n = (*ci->u.c.k)(L, status, ci->u.c.ctx); /* call continuation function */ in finishCcall()
536 luaD_poscall(L, ci, L->top - n, n); /* finish 'luaD_precall' */ in finishCcall()
551 while (L->ci != &L->base_ci) { /* something in the stack */ in unroll()
552 if (!isLua(L->ci)) /* C function? */ in unroll()
567 CallInfo *ci; in findpcall() local
568 for (ci = L->ci; ci != NULL; ci = ci->previous) { /* search for a pcall */ in findpcall()
569 if (ci->callstatus & CIST_YPCALL) in findpcall()
570 return ci; in findpcall()
583 CallInfo *ci = findpcall(L); in recover() local
584 if (ci == NULL) return 0; /* no recovery point */ in recover()
586 oldtop = restorestack(L, ci->extra); in recover()
589 L->ci = ci; in recover()
590 L->allowhook = getoah(ci->callstatus); /* restore original 'allowhook' */ in recover()
593 L->errfunc = ci->u.c.old_errfunc; in recover()
622 CallInfo *ci = L->ci; in resume() local
630 ci->func = restorestack(L, ci->extra); in resume()
631 if (isLua(ci)) /* yielded inside a hook? */ in resume()
634 if (ci->u.c.k != NULL) { /* does it have a continuation function? */ in resume()
636 n = (*ci->u.c.k)(L, LUA_YIELD, ci->u.c.ctx); /* call continuation */ in resume()
641 luaD_poscall(L, ci, firstArg, n); /* finish 'luaD_precall' */ in resume()
653 if (L->ci != &L->base_ci) /* not in base level? */ in lua_resume()
675 L->ci->top = L->top; in lua_resume()
694 CallInfo *ci = L->ci; in lua_yieldk() local
705 ci->extra = savestack(L, ci->func); /* save current 'func' */ in lua_yieldk()
706 if (isLua(ci)) { /* inside a hook? */ in lua_yieldk()
710 if ((ci->u.c.k = k) != NULL) /* is there a continuation? */ in lua_yieldk()
711 ci->u.c.ctx = ctx; /* save context */ in lua_yieldk()
712 ci->func = L->top - nresults - 1; /* protect stack below results */ in lua_yieldk()
715 lua_assert(ci->callstatus & CIST_HOOKED); /* must be inside a hook */ in lua_yieldk()
724 CallInfo *old_ci = L->ci; in luaD_pcall()
734 L->ci = old_ci; in luaD_pcall()