Lines Matching refs:ci
147 CallInfo *ci; in correctstack() local
152 for (ci = L->ci; ci != NULL; ci = ci->previous) { in correctstack()
153 ci->top = (ci->top - oldstack) + L->stack; in correctstack()
154 ci->func = (ci->func - oldstack) + L->stack; in correctstack()
155 if (isLua(ci)) in correctstack()
156 ci->u.l.base = (ci->u.l.base - oldstack) + L->stack; in correctstack()
199 CallInfo *ci; in stackinuse() local
201 for (ci = L->ci; ci != NULL; ci = ci->previous) { in stackinuse()
202 lua_assert(ci->top <= L->stack_last); in stackinuse()
203 if (lim < ci->top) lim = ci->top; in stackinuse()
224 CallInfo *ci = L->ci; in luaD_hook() local
226 ptrdiff_t ci_top = savestack(L, ci->top); in luaD_hook()
230 ar.i_ci = ci; in luaD_hook()
232 ci->top = L->top + LUA_MINSTACK; in luaD_hook()
233 lua_assert(ci->top <= L->stack_last); in luaD_hook()
235 ci->callstatus |= CIST_HOOKED; in luaD_hook()
241 ci->top = restorestack(L, ci_top); in luaD_hook()
243 ci->callstatus &= ~CIST_HOOKED; in luaD_hook()
248 static void callhook (lua_State *L, CallInfo *ci) { in callhook() argument
250 ci->u.l.savedpc++; /* hooks assume 'pc' is already incremented */ in callhook()
251 if (isLua(ci->previous) && in callhook()
252 GET_OPCODE(*(ci->previous->u.l.savedpc - 1)) == OP_TAILCALL) { in callhook()
253 ci->callstatus |= CIST_TAIL; in callhook()
257 ci->u.l.savedpc--; /* correct 'pc' */ in callhook()
294 #define next_ci(L) (L->ci = (L->ci->next ? L->ci->next : luaE_extendCI(L)))
302 CallInfo *ci; in luaD_precall() local
313 ci = next_ci(L); /* now 'enter' new function */ in luaD_precall()
314 ci->nresults = nresults; in luaD_precall()
315 ci->func = restorestack(L, funcr); in luaD_precall()
316 ci->top = L->top + LUA_MINSTACK; in luaD_precall()
317 lua_assert(ci->top <= L->stack_last); in luaD_precall()
318 ci->callstatus = 0; in luaD_precall()
344 ci = next_ci(L); /* now 'enter' new function */ in luaD_precall()
345 ci->nresults = nresults; in luaD_precall()
346 ci->func = func; in luaD_precall()
347 ci->u.l.base = base; in luaD_precall()
348 ci->top = base + p->maxstacksize; in luaD_precall()
349 lua_assert(ci->top <= L->stack_last); in luaD_precall()
350 ci->u.l.savedpc = p->code; /* starting point */ in luaD_precall()
351 ci->callstatus = CIST_LUA; in luaD_precall()
352 L->top = ci->top; in luaD_precall()
355 callhook(L, ci); in luaD_precall()
369 CallInfo *ci = L->ci; in luaD_poscall() local
376 L->oldpc = ci->previous->u.l.savedpc; /* 'oldpc' for caller function */ in luaD_poscall()
378 res = ci->func; /* res == final position of 1st result */ in luaD_poscall()
379 wanted = ci->nresults; in luaD_poscall()
380 L->ci = ci = ci->previous; /* back to caller */ in luaD_poscall()
413 CallInfo *ci = L->ci; in finishCcall() local
415 lua_assert(ci->u.c.k != NULL); /* must have a continuation */ in finishCcall()
417 if (ci->callstatus & CIST_YPCALL) { /* was inside a pcall? */ in finishCcall()
418 ci->callstatus &= ~CIST_YPCALL; /* finish 'lua_pcall' */ in finishCcall()
419 L->errfunc = ci->u.c.old_errfunc; in finishCcall()
422 adjustresults(L, ci->nresults); in finishCcall()
424 if (!(ci->callstatus & CIST_STAT)) /* no call status? */ in finishCcall()
425 ci->u.c.status = LUA_YIELD; /* 'default' status */ in finishCcall()
426 lua_assert(ci->u.c.status != LUA_OK); in finishCcall()
427 ci->callstatus = (ci->callstatus & ~(CIST_YPCALL | CIST_STAT)) | CIST_YIELDED; in finishCcall()
429 n = (*ci->u.c.k)(L); in finishCcall()
440 if (L->ci == &L->base_ci) /* stack is empty? */ in unroll()
442 if (!isLua(L->ci)) /* C function? */ in unroll()
456 CallInfo *ci; in findpcall() local
457 for (ci = L->ci; ci != NULL; ci = ci->previous) { /* search for a pcall */ in findpcall()
458 if (ci->callstatus & CIST_YPCALL) in findpcall()
459 return ci; in findpcall()
467 CallInfo *ci = findpcall(L); in recover() local
468 if (ci == NULL) return 0; /* no recovery point */ in recover()
470 oldtop = restorestack(L, ci->extra); in recover()
473 L->ci = ci; in recover()
474 L->allowhook = ci->u.c.old_allowhook; in recover()
477 L->errfunc = ci->u.c.old_errfunc; in recover()
478 ci->callstatus |= CIST_STAT; /* call has error status */ in recover()
479 ci->u.c.status = status; /* (here it is) */ in recover()
503 CallInfo *ci = L->ci; in resume_cb() local
507 if (ci != &L->base_ci) /* not in base level? */ in resume_cb()
517 ci->func = restorestack(L, ci->extra); in resume_cb()
518 if (isLua(ci)) /* yielded inside a hook? */ in resume_cb()
521 if (ci->u.c.k != NULL) { /* does it have a continuation? */ in resume_cb()
523 ci->u.c.status = LUA_YIELD; /* 'default' status */ in resume_cb()
524 ci->callstatus |= CIST_YIELDED; in resume_cb()
526 n = (*ci->u.c.k)(L); /* call continuation */ in resume_cb()
557 L->ci->top = L->top; in lua_resume()
572 CallInfo *ci = L->ci; in lua_yieldk() local
583 ci->extra = savestack(L, ci->func); /* save current 'func' */ in lua_yieldk()
584 if (isLua(ci)) { /* inside a hook? */ in lua_yieldk()
588 if ((ci->u.c.k = k) != NULL) /* is there a continuation? */ in lua_yieldk()
589 ci->u.c.ctx = ctx; /* save context */ in lua_yieldk()
590 ci->func = L->top - nresults - 1; /* protect stack below results */ in lua_yieldk()
593 lua_assert(ci->callstatus & CIST_HOOKED); /* must be inside a hook */ in lua_yieldk()
602 CallInfo *old_ci = L->ci; in luaD_pcall()
612 L->ci = old_ci; in luaD_pcall()