From 457d88eaaa2ac32e4fa0b7c4310cda9bba95d154 Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Tue, 5 Mar 2002 13:22:54 -0300 Subject: configurable minimum size for the string table --- lgc.c | 4 ++-- llimits.h | 7 ++++++- lstate.c | 4 ++-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/lgc.c b/lgc.c index 09293235..884f689f 100644 --- 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 index 7e158638..3f8f8139 100644 --- 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 index 4f89a892..ea625ccc 100644 --- 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; -- cgit v1.2.3-55-g6feb