aboutsummaryrefslogtreecommitdiff
path: root/lmem.c
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2022-11-23 17:17:20 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2022-11-23 17:17:20 -0300
commitf356d5acdd9d8e8f7e9d1d7632c4657f945ff4f4 (patch)
treebaa2abdc9bd4707b42c0609da42aa1130757273b /lmem.c
parent76953316d1283ab6324b59b914ef53a521408444 (diff)
downloadlua-f356d5acdd9d8e8f7e9d1d7632c4657f945ff4f4.tar.gz
lua-f356d5acdd9d8e8f7e9d1d7632c4657f945ff4f4.tar.bz2
lua-f356d5acdd9d8e8f7e9d1d7632c4657f945ff4f4.zip
First version of GC counting objects for control
Still needs to review generational mode.
Diffstat (limited to 'lmem.c')
-rw-r--r--lmem.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/lmem.c b/lmem.c
index 9029d588..66e2b92b 100644
--- a/lmem.c
+++ b/lmem.c
@@ -133,7 +133,7 @@ void luaM_free_ (lua_State *L, void *block, size_t osize) {
133 global_State *g = G(L); 133 global_State *g = G(L);
134 lua_assert((osize == 0) == (block == NULL)); 134 lua_assert((osize == 0) == (block == NULL));
135 (*g->frealloc)(g->ud, block, osize, 0); 135 (*g->frealloc)(g->ud, block, osize, 0);
136 g->GCdebt -= osize; 136 g->totalbytes -= osize;
137} 137}
138 138
139 139
@@ -167,10 +167,10 @@ void *luaM_realloc_ (lua_State *L, void *block, size_t osize, size_t nsize) {
167 if (l_unlikely(newblock == NULL && nsize > 0)) { 167 if (l_unlikely(newblock == NULL && nsize > 0)) {
168 newblock = tryagain(L, block, osize, nsize); 168 newblock = tryagain(L, block, osize, nsize);
169 if (newblock == NULL) /* still no memory? */ 169 if (newblock == NULL) /* still no memory? */
170 return NULL; /* do not update 'GCdebt' */ 170 return NULL; /* do not update 'totalbytes' */
171 } 171 }
172 lua_assert((nsize == 0) == (newblock == NULL)); 172 lua_assert((nsize == 0) == (newblock == NULL));
173 g->GCdebt = (g->GCdebt + nsize) - osize; 173 g->totalbytes += nsize - osize;
174 return newblock; 174 return newblock;
175} 175}
176 176
@@ -195,7 +195,7 @@ void *luaM_malloc_ (lua_State *L, size_t size, int tag) {
195 if (newblock == NULL) 195 if (newblock == NULL)
196 luaM_error(L); 196 luaM_error(L);
197 } 197 }
198 g->GCdebt += size; 198 g->totalbytes += size;
199 return newblock; 199 return newblock;
200 } 200 }
201} 201}