From df429f163ada6581d921e7f51b016f1abfeefddd Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Tue, 9 Dec 2003 14:56:11 -0200 Subject: First version of incremental GC --- lstring.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'lstring.c') diff --git a/lstring.c b/lstring.c index 5495542d..203c4c98 100644 --- a/lstring.c +++ b/lstring.c @@ -1,5 +1,5 @@ /* -** $Id: lstring.c,v 1.83 2003/12/03 20:03:07 roberto Exp roberto $ +** $Id: lstring.c,v 1.84 2003/12/04 17:22:42 roberto Exp roberto $ ** String table (keeps all strings handled by Lua) ** See Copyright Notice in lua.h */ @@ -84,8 +84,11 @@ TString *luaS_newlstr (lua_State *L, const char *str, size_t l) { o != NULL; o = o->gch.next) { TString *ts = gcotots(o); - if (ts->tsv.len == l && (memcmp(str, getstr(ts), l) == 0)) + if (ts->tsv.len == l && (memcmp(str, getstr(ts), l) == 0)) { + /* string may be dead */ + if (isdead(G(L), o)) changewhite(o); return ts; + } } return newlstr(L, str, l, h); /* not found */ } -- cgit v1.2.3-55-g6feb