35 #define isLua(ci) (!((ci)->state & CI_C))
41 if (!
isLua(ci))
return -1;
43 ci->
u.
l.savedpc = *ci->
u.
l.pc;
72 if (func == NULL || mask == 0) {
104 for (ci = L->
ci; level > 0 && ci > L->
base_ci; ci--) {
107 level -= ci->
u.
l.tailcalls;
109 if (level > 0 || ci == L->
base_ci) status = 0;
110 else if (level < 0) {
160 if (!name || name[0] ==
'(')
176 ar->linedefined = -1;
182 ar->what = (ar->linedefined == 0) ?
"main" :
"Lua";
206 ar->name = ar->namewhat =
"";
208 ar->linedefined = ar->currentline = -1;
209 ar->source =
"=(tail call)";
221 for (; *what; what++) {
232 ar->nups =
clvalue(f)->c.nupvalues;
237 ar->namewhat = (ci) ?
getfuncname(ci, &ar->name) : NULL;
239 if (ar->namewhat == NULL) {
242 ar->namewhat =
"global";
243 else ar->namewhat =
"";
264 luaG_runerror(L,
"value for `lua_getinfo' is not a function");
265 status =
auxgetinfo(L, what + 1, ar, f, NULL);
268 else if (ar->i_ci != 0) {
287 #define check(x) if (!(x)) return 0;
289 #define checkjump(pt,pc) check(0 <= pc && pc < pt->sizecode)
291 #define checkreg(pt,reg) check((reg) < (pt)->maxstacksize)
326 return (r < pt->maxstacksize || (r >=
MAXSTACK && r-MAXSTACK < pt->sizek));
337 for (pc = 0; pc < lastpc; pc++) {
368 if (a == reg) last = pc;
380 if (a <= reg && reg <= b)
396 if (reg == a+1) last = pc;
406 if (reg >= a) last = pc;
413 check(0 <= dest && dest < pt->sizecode);
415 if (reg !=
NO_REG && pc < dest && dest <= lastpc)
425 if (c == LUA_MULTRET) {
430 if (reg >= a) last = pc;
444 check(b < pt->sizep);
445 nup = pt->
p[b]->
nups;
446 check(pc + nup < pt->sizecode);
447 for (; nup>0; nup--) {
456 return pt->
code[last];
538 if ((
isLua(ci) && ci->
u.
l.tailcalls > 0) || !
isLua(ci - 1))
554 for (p = ci->
base; p < ci->top; p++)
555 if (o == p)
return 1;
563 const char *
name = NULL;
606 char buff[LUA_IDSIZE];