Added a counter of the total number of existing objects

It may simplify the control of the garbage collector.
This commit is contained in:
Roberto Ierusalimschy
2022-11-03 16:37:13 -03:00
parent 3d2bd1359d
commit 76953316d1
3 changed files with 5 additions and 0 deletions

View File

@@ -279,6 +279,7 @@ static void close_state (lua_State *L) {
luaM_freearray(L, G(L)->strt.hash, G(L)->strt.size);
freestack(L);
lua_assert(gettotalbytes(g) == sizeof(LG));
lua_assert(g->totalobjs == 1);
(*g->frealloc)(g->ud, fromstate(L), sizeof(LG), 0); /* free main block */
}
@@ -387,6 +388,7 @@ LUA_API lua_State *lua_newstate (lua_Alloc f, void *ud) {
g->weak = g->ephemeron = g->allweak = NULL;
g->twups = NULL;
g->totalbytes = sizeof(LG);
g->totalobjs = 1;
g->GCdebt = 0;
g->lastatomic = 0;
setivalue(&g->nilvalue, 0); /* to signal that state is not yet built */