new macro to `fix' strings

This commit is contained in:
Roberto Ierusalimschy
2002-04-30 10:01:48 -03:00
parent e68d0df1c6
commit ab52fc6097
2 changed files with 5 additions and 3 deletions

View File

@@ -1,5 +1,5 @@
/* /*
** $Id: lstring.h,v 1.34 2001/08/31 19:46:07 roberto Exp $ ** $Id: lstring.h,v 1.35 2001/11/28 20:13:13 roberto Exp roberto $
** String table (keep all strings handled by Lua) ** String table (keep all strings handled by Lua)
** See Copyright Notice in lua.h ** See Copyright Notice in lua.h
*/ */
@@ -30,6 +30,8 @@
#define luaS_newliteral(L, s) (luaS_newlstr(L, "" s, \ #define luaS_newliteral(L, s) (luaS_newlstr(L, "" s, \
(sizeof(s)/sizeof(char))-1)) (sizeof(s)/sizeof(char))-1))
#define luaS_fix(s) ((s)->tsv.marked = FIXMARK)
void luaS_resize (lua_State *L, int newsize); void luaS_resize (lua_State *L, int newsize);
Udata *luaS_newudata (lua_State *L, size_t s); Udata *luaS_newudata (lua_State *L, size_t s);
void luaS_freeall (lua_State *L); void luaS_freeall (lua_State *L);

4
ltm.c
View File

@@ -1,5 +1,5 @@
/* /*
** $Id: ltm.c,v 1.88 2002/03/18 20:24:14 roberto Exp roberto $ ** $Id: ltm.c,v 1.89 2002/04/05 18:54:31 roberto Exp roberto $
** Tag methods ** Tag methods
** See Copyright Notice in lua.h ** See Copyright Notice in lua.h
*/ */
@@ -35,7 +35,7 @@ void luaT_init (lua_State *L) {
int i; int i;
for (i=0; i<TM_N; i++) { for (i=0; i<TM_N; i++) {
G(L)->tmname[i] = luaS_new(L, luaT_eventname[i]); G(L)->tmname[i] = luaS_new(L, luaT_eventname[i]);
G(L)->tmname[i]->tsv.marked = FIXMARK; /* never collect these names */ luaS_fix(G(L)->tmname[i]); /* never collect these names */
} }
} }