Lines Matching refs:ci
33 static const char *getfuncname (lua_State *L, CallInfo *ci, const char **name);
36 static int currentpc (lua_State *L, CallInfo *ci) { in currentpc() argument
37 if (!isLua(ci)) return -1; /* function is not a Lua function? */ in currentpc()
38 if (ci == L->ci) in currentpc()
39 ci->savedpc = L->savedpc; in currentpc()
40 return pcRel(ci->savedpc, ci_func(ci)->l.p); in currentpc()
44 static int currentline (lua_State *L, CallInfo *ci) { in currentline() argument
45 int pc = currentpc(L, ci); in currentline()
49 return getline(ci_func(ci)->l.p, pc); in currentline()
86 CallInfo *ci; in lua_getstack() local
88 for (ci = L->ci; level > 0 && ci > L->base_ci; ci--) { in lua_getstack()
90 if (f_isLua(ci)) /* Lua function? */ in lua_getstack()
91 level -= ci->tailcalls; /* skip lost tail calls */ in lua_getstack()
93 if (level == 0 && ci > L->base_ci) { /* level found? */ in lua_getstack()
95 ar->i_ci = cast_int(ci - L->base_ci); in lua_getstack()
107 static Proto *getluaproto (CallInfo *ci) { in getluaproto() argument
108 return (isLua(ci) ? ci_func(ci)->l.p : NULL); in getluaproto()
112 static const char *findlocal (lua_State *L, CallInfo *ci, int n) { in findlocal() argument
114 Proto *fp = getluaproto(ci); in findlocal()
115 if (fp && (name = luaF_getlocalname(fp, n, currentpc(L, ci))) != NULL) in findlocal()
118 StkId limit = (ci == L->ci) ? L->top : (ci+1)->func; in findlocal()
119 if (limit - ci->base >= n && n > 0) /* is 'n' inside 'ci' stack? */ in findlocal()
128 CallInfo *ci = L->base_ci + ar->i_ci; in lua_getlocal() local
129 const char *name = findlocal(L, ci, n); in lua_getlocal()
132 luaA_pushobject(L, ci->base + (n - 1)); in lua_getlocal()
139 CallInfo *ci = L->base_ci + ar->i_ci; in lua_setlocal() local
140 const char *name = findlocal(L, ci, n); in lua_setlocal()
143 setobjs2s(L, ci->base + (n - 1), L->top - 1); in lua_setlocal()
194 Closure *f, CallInfo *ci) { in auxgetinfo() argument
207 ar->currentline = (ci) ? currentline(L, ci) : -1; in auxgetinfo()
215 ar->namewhat = (ci) ? getfuncname(L, ci, &ar->name) : NULL; in auxgetinfo()
235 CallInfo *ci = NULL; in lua_getinfo() local
245 ci = L->base_ci + ar->i_ci; in lua_getinfo()
246 lua_assert(ttisfunction(ci->func)); in lua_getinfo()
247 f = clvalue(ci->func); in lua_getinfo()
249 status = auxgetinfo(L, what, ar, f, ci); in lua_getinfo()
497 static const char *getobjname (lua_State *L, CallInfo *ci, int stackpos, in getobjname() argument
499 if (isLua(ci)) { /* a Lua function? */ in getobjname()
500 Proto *p = ci_func(ci)->l.p; in getobjname()
501 int pc = currentpc(L, ci); in getobjname()
519 return getobjname(L, ci, b, name); /* get name for `b' */ in getobjname()
544 static const char *getfuncname (lua_State *L, CallInfo *ci, const char **name) { in getfuncname() argument
546 if ((isLua(ci) && ci->tailcalls > 0) || !isLua(ci - 1)) in getfuncname()
548 ci--; /* calling function */ in getfuncname()
549 i = ci_func(ci)->l.p->code[currentpc(L, ci)]; in getfuncname()
552 return getobjname(L, ci, GETARG_A(i), name); in getfuncname()
559 static int isinstack (CallInfo *ci, const TValue *o) { in isinstack() argument
561 for (p = ci->base; p < ci->top; p++) in isinstack()
570 const char *kind = (isinstack(L->ci, o)) ? in luaG_typeerror()
571 getobjname(L, L->ci, cast_int(o - L->base), &name) : in luaG_typeerror()
608 CallInfo *ci = L->ci; in addinfo() local
609 if (isLua(ci)) { /* is Lua code? */ in addinfo()
611 int line = currentline(L, ci); in addinfo()
612 luaO_chunkid(buff, getstr(getluaproto(ci)->source), LUA_IDSIZE); in addinfo()