static void enterlevel(LexState *ls) { lua_State *L = ls->L; ++L->nCcalls; checklimit(ls->fs, L->nCcalls, LUAI_MAXCCALLS, "C levels"); }
int shouldBan(struct boardheader *bh, int oldvalue) { int limit, limit_new, count, fd = -1, ban = 0; char buf[256]; time_t t = time(NULL); if (!oldvalue && !level) return oldvalue; limit = getlimit(bh); limit_new = limit + limit / 3; sprintf(buf, MY_BBS_HOME "/boards/%s/.DIR", bh->filename); count = file_size(buf) / sizeof (struct fileheader); if (count <= limit) return 0; if (count > limit_new + 500) goto SHOULDBAN; fd = open(buf, O_RDONLY); if (fd < 0) return 0; ban = max(ban, checklimit(fd, count, limit, 500, t - 3 * 24 * 3600)); ban = max(ban, checklimit(fd, count, limit_new, 500, t - 12 * 3600)); close(fd); if (ban == 2) goto SHOULDBAN; if (ban == 1) goto WOULDBAN; return 0; WOULDBAN: if (oldvalue != 1) { if (!level) return 0; warnmsg(bh, 1, limit, limit_new); } return 1; SHOULDBAN: if (oldvalue != 2) { if (level < 2) goto WOULDBAN; warnmsg(bh, 2, limit, limit_new); } return 2; }
static void new_localvar (LexState *ls, TString *name) { FuncState *fs = ls->fs; Dyndata *dyd = ls->dyd; int reg = registerlocalvar(ls, name); checklimit(fs, dyd->actvar.n + 1 - fs->firstlocal, MAXVARS, "local variables"); luaM_growvector(ls->L, dyd->actvar.arr, dyd->actvar.n + 1, dyd->actvar.size, Vardesc, MAX_INT, "local variables"); dyd->actvar.arr[dyd->actvar.n++].idx = cast(short, reg); }
static void new_localvar(ktap_lexstate *ls, ktap_string *name) { ktap_funcstate *fs = ls->fs; ktap_dyndata *dyd = ls->dyd; int reg = registerlocalvar(ls, name); checklimit(fs, dyd->actvar.n + 1 - fs->firstlocal, MAXVARS, "local variables"); ktapc_growvector(dyd->actvar.arr, dyd->actvar.n + 1, dyd->actvar.size, ktap_vardesc, MAX_INT, "local variables"); dyd->actvar.arr[dyd->actvar.n++].idx = (short)reg; }
static int newupvalue (FuncState *fs, TString *name, expdesc *v) { Proto *f = fs->f; int oldsize = f->sizeupvalues; checklimit(fs, fs->nups + 1, MAXUPVAL, "upvalues"); luaM_growvector(fs->ls->L, f->upvalues, fs->nups, f->sizeupvalues, Upvaldesc, MAXUPVAL, "upvalues"); while (oldsize < f->sizeupvalues) f->upvalues[oldsize++].name = NULL; f->upvalues[fs->nups].instack = (v->k == VLOCAL); f->upvalues[fs->nups].idx = cast_byte(v->u.info); f->upvalues[fs->nups].name = name; luaC_objbarrier(fs->ls->L, f, name); return fs->nups++; }
static int newupvalue(ktap_funcstate *fs, ktap_string *name, ktap_expdesc *v) { ktap_proto *f = fs->f; int oldsize = f->sizeupvalues; checklimit(fs, fs->nups + 1, MAXUPVAL, "upvalues"); ktapc_growvector(f->upvalues, fs->nups, f->sizeupvalues, ktap_upvaldesc, MAXUPVAL, "upvalues"); while (oldsize < f->sizeupvalues) f->upvalues[oldsize++].name = NULL; f->upvalues[(int)fs->nups].instack = (v->k == VLOCAL); f->upvalues[(int)fs->nups].idx = (u8)(v->u.info); f->upvalues[(int)fs->nups].name = name; return fs->nups++; }
static void enterlevel(ktap_lexstate *ls) { ++ls->nCcalls; checklimit(ls->fs, ls->nCcalls, KTAP_MAXCCALLS, "C levels"); }
static void enterlevel (LexState *ls) { global_State *g = G(ls->L); ++g->nCcalls; checklimit(ls->fs, g->nCcalls, LUAI_MAXCCALLS, "syntax levels"); }