Exemple #1
0
static void freesharedproto (lua_State *L, SharedProto *f) {
  if (f == NULL || G(L) != f->l_G)
    return;
  luaM_freearray(L, f->code, f->sizecode);
  luaM_freearray(L, f->lineinfo, f->sizelineinfo);
  luaM_freearray(L, f->locvars, f->sizelocvars);
  luaM_freearray(L, f->upvalues, f->sizeupvalues);
}
Exemple #2
0
void luaF_freeproto (lua_State *L, Proto *f) {
  luaM_freearray(L, f->code, f->sizecode, Instruction);
  luaM_freearray(L, f->p, f->sizep, Proto *);
  luaM_freearray(L, f->k, f->sizek, TObject);
  luaM_freearray(L, f->lineinfo, f->sizelineinfo, int);
  luaM_freearray(L, f->locvars, f->sizelocvars, struct LocVar);
  luaM_freearray(L, f->upvalues, f->sizeupvalues, TString *);
  luaM_freelem(L, f);
}
Exemple #3
0
static void freestack (lua_State *L) {
  if (L->stack == NULL)
    return;  /* stack not completely built yet */
  L->ci = &L->base_ci;  /* free the entire 'ci' list */
  luaE_freeCI(L);
  luaM_freearray(L, L->stack, L->stacksize);  /* free stack array */
}
Exemple #4
0
static void close_state (lua_State *L) {
  global_State *g = G(L);
  luaF_close(L, L->stack);  /* close all upvalues for this thread */
  luaC_freeallobjects(L);  /* collect all objects */
  luaM_freearray(L, G(L)->strt.hash, G(L)->strt.size);
  luaZ_freebuffer(L, &g->buff);
  freestack(L);
  lua_assert(gettotalbytes(g) == sizeof(LG));
  (*g->frealloc)(g->ud, fromstate(L), sizeof(LG), 0);  /* free main block */
}
Exemple #5
0
static void close_state (lua_State *L) {
  global_State *g = G(L);
  luaF_close(L, L->stack);  /* close all upvalues for this thread */
  luaC_freeallobjects(L);  /* collect all objects */
  if (g->version)  /* closing a fully built state? */
    luai_userstateclose(L);
  luaM_freearray(L, G(L)->strt.hash, G(L)->strt.size);
  freestack(L);
  lua_assert(gettotalbytes(g) == sizeof(LG));
  (*g->frealloc)(g->ud, fromstate(L), sizeof(LG), 0);  /* free main block */
}
Exemple #6
0
void luaF_freeproto (lua_State *L, Proto *f) {
  luaM_freearray(L, f->code, f->sizecode);
  luaM_freearray(L, f->p, f->sizep);
  luaM_freearray(L, f->k, f->sizek);
  luaM_freearray(L, f->lineinfo, f->sizelineinfo);
  luaM_freearray(L, f->abslineinfo, f->sizeabslineinfo);
  luaM_freearray(L, f->locvars, f->sizelocvars);
  luaM_freearray(L, f->upvalues, f->sizeupvalues);
  luaM_free(L, f);
}
Exemple #7
0
static void freestack (lua_State *L, lua_State *L1) {
  struct lua_longjmp *pj, *pprev, *pnext;
  luaM_freearray(L, L1->base_ci, L1->size_ci, CallInfo);
  luaM_freearray(L, L1->stack, L1->stacksize, TValue);

  /* free try-catch info */
  pj = L->errorJmp;
  pnext = NULL;
  while (pj) {
    pprev = pj->previous;
    if (pj->type == JMPTYPE_TRY) {
      if (pnext == NULL)
        L->errorJmp = pprev;
      else
        pnext->previous = pprev;
      luaM_free(L, pj);
    }
    else
      pnext = pj;
    pj = pprev;
  }
}
void reginfos_free (lua_State *L, Proto *f) {
  int i;
  RegInfo *reginfo, *tmp;
  for (i = 0; i < f->sizereginfos; i++) {
    reginfo = &(f->reginfos[i]);
    if (reginfo->state == RI_UNUSED ||
        reginfo->state == RI_LOCAL_UNUSED)
      continue;
    reginfo = reginfo->next;
    while (reginfo != NULL) {
      tmp = reginfo;      
      reginfo = reginfo->next;
      tmp->next = NULL;
      luaM_free(L, tmp);
    }
  }
  luaM_freearray(L, f->reginfos, f->sizereginfos);
}
Exemple #9
0
static void freestack (lua_State *L, lua_State *L1) {
  luaM_freearray(L, L1->base_ci, L1->size_ci, CallInfo);
  luaM_freearray(L, L1->stack, L1->stacksize, TObject);
}
Exemple #10
0
void luaF_freeproto (lua_State *L, Proto *f) {
  luaM_freearray(L, f->p, f->sp->sizep);
  luaM_freearray(L, f->k, f->sp->sizek);
  freesharedproto(L, f->sp);
  luaM_free(L, f);
}
Exemple #11
0
static void freehash (lua_State *L, Table *t) {
  if (!isdummy(t))
    luaM_freearray(L, t->node, cast_sizet(sizenode(t)));
}
Exemple #12
0
static void ICACHE_FLASH_ATTR freestack (lua_State *L, lua_State *L1) {
  luaM_freearray(L, L1->base_ci, L1->size_ci, CallInfo);
  luaM_freearray(L, L1->stack, L1->stacksize, TValue);
}