• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-12-stable/contrib/lua/src/

Lines Matching defs:ci

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