Lines Matching full:ci

37 static const char *funcnamefromcall (lua_State *L, CallInfo *ci,
44 static int currentpc (CallInfo *ci) { in currentpc() argument
45 lua_assert(isLua(ci)); in currentpc()
46 return pcRel(ci->u.l.savedpc, ci_func(ci)->p); in currentpc()
101 static int getcurrentline (CallInfo *ci) { in getcurrentline() argument
102 return luaG_getfuncline(ci_func(ci)->p, currentpc(ci)); in getcurrentline()
109 ** assumptions. A new 'ci' is completely linked in the list before it
117 static void settraps (CallInfo *ci) { in settraps() argument
118 for (; ci != NULL; ci = ci->previous) in settraps()
119 if (isLua(ci)) in settraps()
120 ci->u.l.trap = 1; in settraps()
144 settraps(L->ci); /* to trace inside 'luaV_execute' */ in lua_sethook()
165 CallInfo *ci; in lua_getstack() local
168 for (ci = L->ci; level > 0 && ci != &L->base_ci; ci = ci->previous) in lua_getstack()
170 if (level == 0 && ci != &L->base_ci) { /* level found? */ in lua_getstack()
172 ar->i_ci = ci; in lua_getstack()
187 static const char *findvararg (CallInfo *ci, int n, StkId *pos) { in findvararg() argument
188 if (clLvalue(s2v(ci->func.p))->p->is_vararg) { in findvararg()
189 int nextra = ci->u.l.nextraargs; in findvararg()
191 *pos = ci->func.p - nextra - (n + 1); in findvararg()
199 const char *luaG_findlocal (lua_State *L, CallInfo *ci, int n, StkId *pos) { in luaG_findlocal() argument
200 StkId base = ci->func.p + 1; in luaG_findlocal()
202 if (isLua(ci)) { in luaG_findlocal()
204 return findvararg(ci, n, pos); in luaG_findlocal()
206 name = luaF_getlocalname(ci_func(ci)->p, n, currentpc(ci)); in luaG_findlocal()
209 StkId limit = (ci == L->ci) ? L->top.p : ci->next->func.p; in luaG_findlocal()
210 if (limit - base >= n && n > 0) { /* is 'n' inside 'ci' stack? */ in luaG_findlocal()
212 name = isLua(ci) ? "(temporary)" : "(C temporary)"; in luaG_findlocal()
324 static const char *getfuncname (lua_State *L, CallInfo *ci, const char **name) { in getfuncname() argument
326 if (ci != NULL && !(ci->callstatus & CIST_TAIL)) in getfuncname()
327 return funcnamefromcall(L, ci->previous, name); in getfuncname()
333 Closure *f, CallInfo *ci) { in auxgetinfo() argument
342 ar->currentline = (ci && isLua(ci)) ? getcurrentline(ci) : -1; in auxgetinfo()
358 ar->istailcall = (ci) ? ci->callstatus & CIST_TAIL : 0; in auxgetinfo()
362 ar->namewhat = getfuncname(L, ci, &ar->name); in auxgetinfo()
370 if (ci == NULL || !(ci->callstatus & CIST_TRAN)) in auxgetinfo()
373 ar->ftransfer = ci->u2.transferinfo.ftransfer; in auxgetinfo()
374 ar->ntransfer = ci->u2.transferinfo.ntransfer; in auxgetinfo()
391 CallInfo *ci; in lua_getinfo() local
395 ci = NULL; in lua_getinfo()
402 ci = ar->i_ci; in lua_getinfo()
403 func = s2v(ci->func.p); in lua_getinfo()
407 status = auxgetinfo(L, what, ar, cl, ci); in lua_getinfo()
664 static const char *funcnamefromcall (lua_State *L, CallInfo *ci, in funcnamefromcall() argument
666 if (ci->callstatus & CIST_HOOKED) { /* was it called inside a hook? */ in funcnamefromcall()
670 else if (ci->callstatus & CIST_FIN) { /* was it called as a finalizer? */ in funcnamefromcall()
674 else if (isLua(ci)) in funcnamefromcall()
675 return funcnamefromcode(L, ci_func(ci)->p, currentpc(ci), name); in funcnamefromcall()
690 static int instack (CallInfo *ci, const TValue *o) { in instack() argument
692 StkId base = ci->func.p + 1; in instack()
693 for (pos = 0; base + pos < ci->top.p; pos++) { in instack()
706 static const char *getupvalname (CallInfo *ci, const TValue *o, in getupvalname() argument
708 LClosure *c = ci_func(ci); in getupvalname()
733 CallInfo *ci = L->ci; in varinfo() local
736 if (isLua(ci)) { in varinfo()
737 kind = getupvalname(ci, o, &name); /* check whether 'o' is an upvalue */ in varinfo()
739 int reg = instack(ci, o); /* try a register */ in varinfo()
741 kind = getobjname(ci_func(ci)->p, currentpc(ci), reg, &name); in varinfo()
773 CallInfo *ci = L->ci; in luaG_callerror() local
775 const char *kind = funcnamefromcall(L, ci, &name); in luaG_callerror()
849 CallInfo *ci = L->ci; in luaG_runerror() local
856 if (isLua(ci)) { /* if Lua function, add source:line information */ in luaG_runerror()
857 luaG_addinfo(L, msg, ci_func(ci)->p->source, getcurrentline(ci)); in luaG_runerror()
903 CallInfo *ci = L->ci; in luaG_tracecall() local
904 Proto *p = ci_func(ci)->p; in luaG_tracecall()
905 ci->u.l.trap = 1; /* ensure hooks will be checked */ in luaG_tracecall()
906 if (ci->u.l.savedpc == p->code) { /* first instruction (not resuming)? */ in luaG_tracecall()
909 else if (!(ci->callstatus & CIST_HOOKYIELD)) /* not yieded? */ in luaG_tracecall()
910 luaD_hookcall(L, ci); /* check 'call' hook */ in luaG_tracecall()
929 CallInfo *ci = L->ci; in luaG_traceexec() local
931 const Proto *p = ci_func(ci)->p; in luaG_traceexec()
934 ci->u.l.trap = 0; /* don't need to stop again */ in luaG_traceexec()
938 ci->u.l.savedpc = pc; /* save 'pc' */ in luaG_traceexec()
944 if (ci->callstatus & CIST_HOOKYIELD) { /* hook yielded last time? */ in luaG_traceexec()
945 ci->callstatus &= ~CIST_HOOKYIELD; /* erase mark */ in luaG_traceexec()
948 if (!isIT(*(ci->u.l.savedpc - 1))) /* top not being used? */ in luaG_traceexec()
949 L->top.p = ci->top.p; /* correct top */ in luaG_traceexec()
966 ci->callstatus |= CIST_HOOKYIELD; /* mark that it yielded */ in luaG_traceexec()