diff options
| author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2022-11-23 17:17:20 -0300 |
|---|---|---|
| committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2022-11-23 17:17:20 -0300 |
| commit | f356d5acdd9d8e8f7e9d1d7632c4657f945ff4f4 (patch) | |
| tree | baa2abdc9bd4707b42c0609da42aa1130757273b /lmem.c | |
| parent | 76953316d1283ab6324b59b914ef53a521408444 (diff) | |
| download | lua-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.c | 8 |
1 files changed, 4 insertions, 4 deletions
| @@ -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 | } |
