summaryrefslogtreecommitdiff
path: root/lgc.c
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2000-09-11 14:38:42 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2000-09-11 14:38:42 -0300
commit787a78f83e0484c9e9698189982e2f309808fae8 (patch)
tree0682eddf4ea5a49bf5078bac937a36f90057df57 /lgc.c
parent70c8a310925d6c41c3ef4f7feeae604a4c9a3a95 (diff)
downloadlua-787a78f83e0484c9e9698189982e2f309808fae8.tar.gz
lua-787a78f83e0484c9e9698189982e2f309808fae8.tar.bz2
lua-787a78f83e0484c9e9698189982e2f309808fae8.zip
new scheme for buffers
Diffstat (limited to 'lgc.c')
-rw-r--r--lgc.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/lgc.c b/lgc.c
index f6768dd2..5329e558 100644
--- a/lgc.c
+++ b/lgc.c
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: lgc.c,v 1.63 2000/08/22 17:44:17 roberto Exp roberto $ 2** $Id: lgc.c,v 1.64 2000/08/28 17:57:04 roberto Exp roberto $
3** Garbage Collector 3** Garbage Collector
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -333,6 +333,8 @@ void luaC_collect (lua_State *L, int all) {
333} 333}
334 334
335 335
336#define MINBUFFER 256
337
336long lua_collectgarbage (lua_State *L, long limit) { 338long lua_collectgarbage (lua_State *L, long limit) {
337 unsigned long recovered = L->nblocks; /* to subtract `nblocks' after gc */ 339 unsigned long recovered = L->nblocks; /* to subtract `nblocks' after gc */
338 markall(L); 340 markall(L);
@@ -340,8 +342,8 @@ long lua_collectgarbage (lua_State *L, long limit) {
340 luaC_collect(L, 0); 342 luaC_collect(L, 0);
341 recovered = recovered - L->nblocks; 343 recovered = recovered - L->nblocks;
342 L->GCthreshold = (limit == 0) ? 2*L->nblocks : L->nblocks+limit; 344 L->GCthreshold = (limit == 0) ? 2*L->nblocks : L->nblocks+limit;
343 if (L->Mbuffsize > L->Mbuffnext*4) { /* is buffer too big? */ 345 if (L->Mbuffsize > MINBUFFER*2) { /* is buffer too big? */
344 L->Mbuffsize /= 2; /* still larger than Mbuffnext*2 */ 346 L->Mbuffsize /= 2; /* still larger than MINBUFFER */
345 luaM_reallocvector(L, L->Mbuffer, L->Mbuffsize, char); 347 luaM_reallocvector(L, L->Mbuffer, L->Mbuffsize, char);
346 } 348 }
347 callgcTM(L, &luaO_nilobject); 349 callgcTM(L, &luaO_nilobject);