diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2018-02-15 16:06:24 -0200 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2018-02-15 16:06:24 -0200 |
commit | c7a8cba74512a16aa01a99f2cdf395b358ada2fc (patch) | |
tree | 00d54a7a1170f700470554984c30132972f04cbd /lstring.c | |
parent | 0682fe816929da2e5abe8e191ad9c8509e6bfc12 (diff) | |
download | lua-c7a8cba74512a16aa01a99f2cdf395b358ada2fc.tar.gz lua-c7a8cba74512a16aa01a99f2cdf395b358ada2fc.tar.bz2 lua-c7a8cba74512a16aa01a99f2cdf395b358ada2fc.zip |
no more 'nfield' string
Diffstat (limited to 'lstring.c')
-rw-r--r-- | lstring.c | 13 |
1 files changed, 5 insertions, 8 deletions
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: lstring.c,v 2.62 2017/12/18 13:00:57 roberto Exp roberto $ | 2 | ** $Id: lstring.c,v 2.63 2018/01/28 15:13:26 roberto Exp roberto $ |
3 | ** String table (keeps all strings handled by Lua) | 3 | ** String table (keeps all strings handled by Lua) |
4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
5 | */ | 5 | */ |
@@ -122,7 +122,7 @@ void luaS_clearcache (global_State *g) { | |||
122 | for (i = 0; i < STRCACHE_N; i++) | 122 | for (i = 0; i < STRCACHE_N; i++) |
123 | for (j = 0; j < STRCACHE_M; j++) { | 123 | for (j = 0; j < STRCACHE_M; j++) { |
124 | if (iswhite(g->strcache[i][j])) /* will entry be collected? */ | 124 | if (iswhite(g->strcache[i][j])) /* will entry be collected? */ |
125 | g->strcache[i][j] = g->nfield; /* replace it with something fixed */ | 125 | g->strcache[i][j] = g->memerrmsg; /* replace it with something fixed */ |
126 | } | 126 | } |
127 | } | 127 | } |
128 | 128 | ||
@@ -133,19 +133,16 @@ void luaS_clearcache (global_State *g) { | |||
133 | void luaS_init (lua_State *L) { | 133 | void luaS_init (lua_State *L) { |
134 | global_State *g = G(L); | 134 | global_State *g = G(L); |
135 | int i, j; | 135 | int i, j; |
136 | TString *memerrmsg; | ||
137 | stringtable *tb = &G(L)->strt; | 136 | stringtable *tb = &G(L)->strt; |
138 | tb->hash = luaM_newvector(L, MINSTRTABSIZE, TString*); | 137 | tb->hash = luaM_newvector(L, MINSTRTABSIZE, TString*); |
139 | tablerehash(tb->hash, 0, MINSTRTABSIZE); /* clear array */ | 138 | tablerehash(tb->hash, 0, MINSTRTABSIZE); /* clear array */ |
140 | tb->size = MINSTRTABSIZE; | 139 | tb->size = MINSTRTABSIZE; |
141 | /* pre-create memory-error message */ | 140 | /* pre-create memory-error message */ |
142 | memerrmsg = luaS_newliteral(L, MEMERRMSG); | 141 | g->memerrmsg = luaS_newliteral(L, MEMERRMSG); |
143 | luaC_fix(L, obj2gco(memerrmsg)); /* it should never be collected */ | 142 | luaC_fix(L, obj2gco(g->memerrmsg)); /* it should never be collected */ |
144 | g->nfield = luaS_newliteral(L, "n"); /* pre-create "n" field name */ | ||
145 | luaC_fix(L, obj2gco(g->nfield)); /* it also should never be collected */ | ||
146 | for (i = 0; i < STRCACHE_N; i++) /* fill cache with valid strings */ | 143 | for (i = 0; i < STRCACHE_N; i++) /* fill cache with valid strings */ |
147 | for (j = 0; j < STRCACHE_M; j++) | 144 | for (j = 0; j < STRCACHE_M; j++) |
148 | g->strcache[i][j] = g->nfield; | 145 | g->strcache[i][j] = g->memerrmsg; |
149 | } | 146 | } |
150 | 147 | ||
151 | 148 | ||