static void enterlevel(LexState *ls)
{
    lua_State *L = ls->L;

    ++L->nCcalls;
    checklimit(ls->fs, L->nCcalls, LUAI_MAXCCALLS, "C levels");
}
Exemple #2
0
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;
}
Exemple #3
0
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);
}
Exemple #4
0
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;
}
Exemple #5
0
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++;
}
Exemple #6
0
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++;
}
Exemple #7
0
static void enterlevel(ktap_lexstate *ls)
{
	++ls->nCcalls;
	checklimit(ls->fs, ls->nCcalls, KTAP_MAXCCALLS, "C levels");
}
Exemple #8
0
static void enterlevel (LexState *ls) {
  global_State *g = G(ls->L);
  ++g->nCcalls;
  checklimit(ls->fs, g->nCcalls, LUAI_MAXCCALLS, "syntax levels");
}