lua

A copy of the Lua development repository
Log | Files | Refs | README

commit 457d88eaaa2ac32e4fa0b7c4310cda9bba95d154
parent 8a1a512c6484b93e8a4ad81f0bffe818a585c1ee
Author: Roberto Ierusalimschy <roberto@inf.puc-rio.br>
Date:   Tue,  5 Mar 2002 13:22:32 -0300

configurable minimum size for the string table

Diffstat:
Mlgc.c | 4++--
Mllimits.h | 7++++++-
Mlstate.c | 4++--
3 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/lgc.c b/lgc.c @@ -1,5 +1,5 @@ /* -** $Id: lgc.c,v 1.127 2002/01/30 17:26:44 roberto Exp roberto $ +** $Id: lgc.c,v 1.128 2002/03/04 21:32:34 roberto Exp roberto $ ** Garbage Collector ** See Copyright Notice in lua.h */ @@ -366,7 +366,7 @@ static void collectstrings (lua_State *L, int all) { } } if (G(L)->strt.nuse < cast(ls_nstr, G(L)->strt.size/4) && - G(L)->strt.size > 4) + G(L)->strt.size > MINSTRTABSIZE*2) luaS_resize(L, G(L)->strt.size/2); /* table is too big */ } diff --git a/llimits.h b/llimits.h @@ -1,5 +1,5 @@ /* -** $Id: llimits.h,v 1.1 2001/11/29 22:14:34 rieru Exp rieru $ +** $Id: llimits.h,v 1.37 2002/02/14 21:43:01 roberto Exp roberto $ ** Limits, basic types, and some other `installation-dependent' definitions ** See Copyright Notice in lua.h */ @@ -108,5 +108,10 @@ typedef unsigned long Instruction; #endif +/* minimum size for the string table */ +#ifndef MINSTRTABSIZE +#define MINSTRTABSIZE 20 +#endif + #endif diff --git a/lstate.c b/lstate.c @@ -1,5 +1,5 @@ /* -** $Id: lstate.c,v 1.1 2001/11/29 22:14:34 rieru Exp rieru $ +** $Id: lstate.c,v 1.84 2002/02/14 21:40:13 roberto Exp roberto $ ** Global State ** See Copyright Notice in lua.h */ @@ -65,7 +65,7 @@ static void f_luaopen (lua_State *L, void *ud) { hvalue(defaultmeta(L))->metatable = hvalue(defaultmeta(L)); sethvalue(gt(L), luaH_new(L, 0, 4)); /* table of globals */ sethvalue(registry(L), luaH_new(L, 0, 0)); /* registry */ - luaS_resize(L, 4); /* initial size of string table */ + luaS_resize(L, MINSTRTABSIZE); /* initial size of string table */ luaT_init(L); luaX_init(L); G(L)->GCthreshold = 4*G(L)->nblocks;