From 76953316d1283ab6324b59b914ef53a521408444 Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Thu, 3 Nov 2022 16:37:13 -0300 Subject: Added a counter of the total number of existing objects It may simplify the control of the garbage collector. --- lgc.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'lgc.c') diff --git a/lgc.c b/lgc.c index 2e749902..20e9b4aa 100644 --- a/lgc.c +++ b/lgc.c @@ -259,6 +259,7 @@ GCObject *luaC_newobjdt (lua_State *L, int tt, size_t sz, size_t offset) { global_State *g = G(L); char *p = cast_charp(luaM_newobject(L, novariant(tt), sz)); GCObject *o = cast(GCObject *, p + offset); + g->totalobjs++; o->marked = luaC_white(g); o->tt = tt; o->next = g->allgc; @@ -768,6 +769,7 @@ static void freeupval (lua_State *L, UpVal *uv) { static void freeobj (lua_State *L, GCObject *o) { + G(L)->totalobjs--; switch (o->tt) { case LUA_VPROTO: luaF_freeproto(L, gco2p(o)); -- cgit v1.2.3-55-g6feb