Lines Matching full:ci

227   CallInfo *ci;  in correctstack()  local
232 for (ci = L->ci; ci != NULL; ci = ci->previous) { in correctstack()
233 ci->top = (ci->top - oldstack) + L->stack; in correctstack()
234 ci->func = (ci->func - oldstack) + L->stack; in correctstack()
235 if (isLua(ci)) in correctstack()
236 ci->u.l.base = (ci->u.l.base - oldstack) + L->stack; in correctstack()
279 CallInfo *ci; in stackinuse() local
281 for (ci = L->ci; ci != NULL; ci = ci->previous) { in stackinuse()
282 lua_assert(ci->top <= L->stack_last); in stackinuse()
283 if (lim < ci->top) lim = ci->top; in stackinuse()
304 CallInfo *ci = L->ci; in luaD_hook() local
306 ptrdiff_t ci_top = savestack(L, ci->top); in luaD_hook()
310 ar.i_ci = ci; in luaD_hook()
312 ci->top = L->top + LUA_MINSTACK; in luaD_hook()
313 lua_assert(ci->top <= L->stack_last); in luaD_hook()
315 ci->callstatus |= CIST_HOOKED; in luaD_hook()
321 ci->top = restorestack(L, ci_top); in luaD_hook()
323 ci->callstatus &= ~CIST_HOOKED; in luaD_hook()
328 static void callhook (lua_State *L, CallInfo *ci) { in callhook() argument
330 ci->u.l.savedpc++; /* hooks assume 'pc' is already incremented */ in callhook()
331 if (isLua(ci->previous) && in callhook()
332 GET_OPCODE(*(ci->previous->u.l.savedpc - 1)) == OP_TAILCALL) { in callhook()
333 ci->callstatus |= CIST_TAIL; in callhook()
337 ci->u.l.savedpc--; /* correct 'pc' */ in callhook()
374 #define next_ci(L) (L->ci = (L->ci->next ? L->ci->next : luaE_extendCI(L)))
382 CallInfo *ci; in luaD_precall() local
393 ci = next_ci(L); /* now 'enter' new function */ in luaD_precall()
394 ci->nresults = nresults; in luaD_precall()
395 ci->func = restorestack(L, funcr); in luaD_precall()
396 ci->top = L->top + LUA_MINSTACK; in luaD_precall()
397 lua_assert(ci->top <= L->stack_last); in luaD_precall()
398 ci->callstatus = 0; in luaD_precall()
424 ci = next_ci(L); /* now 'enter' new function */ in luaD_precall()
425 ci->nresults = nresults; in luaD_precall()
426 ci->func = func; in luaD_precall()
427 ci->u.l.base = base; in luaD_precall()
428 ci->top = base + p->maxstacksize; in luaD_precall()
429 lua_assert(ci->top <= L->stack_last); in luaD_precall()
430 ci->u.l.savedpc = p->code; /* starting point */ in luaD_precall()
431 ci->callstatus = CIST_LUA; in luaD_precall()
432 L->top = ci->top; in luaD_precall()
435 callhook(L, ci); in luaD_precall()
449 CallInfo *ci = L->ci; in luaD_poscall() local
456 L->oldpc = ci->previous->u.l.savedpc; /* 'oldpc' for caller function */ in luaD_poscall()
458 res = ci->func; /* res == final position of 1st result */ in luaD_poscall()
459 wanted = ci->nresults; in luaD_poscall()
460 L->ci = ci->previous; /* back to caller */ in luaD_poscall()
498 CallInfo *ci = L->ci; in finishCcall() local
500 lua_assert(ci->u.c.k != NULL); /* must have a continuation */ in finishCcall()
502 if (ci->callstatus & CIST_YPCALL) { /* was inside a pcall? */ in finishCcall()
503 ci->callstatus &= ~CIST_YPCALL; /* finish 'lua_pcall' */ in finishCcall()
504 L->errfunc = ci->u.c.old_errfunc; in finishCcall()
507 adjustresults(L, ci->nresults); in finishCcall()
509 if (!(ci->callstatus & CIST_STAT)) /* no call status? */ in finishCcall()
510 ci->u.c.status = LUA_YIELD; /* 'default' status */ in finishCcall()
511 lua_assert(ci->u.c.status != LUA_OK); in finishCcall()
512 ci->callstatus = (ci->callstatus & ~(CIST_YPCALL | CIST_STAT)) | CIST_YIELDED; in finishCcall()
514 n = (*ci->u.c.k)(L); in finishCcall()
525 if (L->ci == &L->base_ci) /* stack is empty? */ in unroll()
527 if (!isLua(L->ci)) /* C function? */ in unroll()
541 CallInfo *ci; in findpcall() local
542 for (ci = L->ci; ci != NULL; ci = ci->previous) { /* search for a pcall */ in findpcall()
543 if (ci->callstatus & CIST_YPCALL) in findpcall()
544 return ci; in findpcall()
552 CallInfo *ci = findpcall(L); in recover() local
553 if (ci == NULL) return 0; /* no recovery point */ in recover()
555 oldtop = restorestack(L, ci->extra); in recover()
558 L->ci = ci; in recover()
559 L->allowhook = ci->u.c.old_allowhook; in recover()
562 L->errfunc = ci->u.c.old_errfunc; in recover()
563 ci->callstatus |= CIST_STAT; /* call has error status */ in recover()
564 ci->u.c.status = status; /* (here it is) */ in recover()
588 CallInfo *ci = L->ci; in resume_cb() local
592 if (ci != &L->base_ci) /* not in base level? */ in resume_cb()
602 ci->func = restorestack(L, ci->extra); in resume_cb()
603 if (isLua(ci)) /* yielded inside a hook? */ in resume_cb()
606 if (ci->u.c.k != NULL) { /* does it have a continuation? */ in resume_cb()
608 ci->u.c.status = LUA_YIELD; /* 'default' status */ in resume_cb()
609 ci->callstatus |= CIST_YIELDED; in resume_cb()
611 n = (*ci->u.c.k)(L); /* call continuation */ in resume_cb()
642 L->ci->top = L->top; in lua_resume()
657 CallInfo *ci = L->ci; in lua_yieldk() local
668 ci->extra = savestack(L, ci->func); /* save current 'func' */ in lua_yieldk()
669 if (isLua(ci)) { /* inside a hook? */ in lua_yieldk()
673 if ((ci->u.c.k = k) != NULL) /* is there a continuation? */ in lua_yieldk()
674 ci->u.c.ctx = ctx; /* save context */ in lua_yieldk()
675 ci->func = L->top - nresults - 1; /* protect stack below results */ in lua_yieldk()
678 lua_assert(ci->callstatus & CIST_HOOKED); /* must be inside a hook */ in lua_yieldk()
687 CallInfo *old_ci = L->ci; in luaD_pcall()
697 L->ci = old_ci; in luaD_pcall()