aboutsummaryrefslogtreecommitdiff
path: root/lgc.c
diff options
context:
space:
mode:
Diffstat (limited to 'lgc.c')
-rw-r--r--lgc.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/lgc.c b/lgc.c
index e5ecb9c6..c9bcf666 100644
--- a/lgc.c
+++ b/lgc.c
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: lgc.c,v 1.139 2002/06/25 19:17:42 roberto Exp roberto $ 2** $Id: lgc.c,v 1.140 2002/07/01 17:06:58 roberto Exp roberto $
3** Garbage Collector 3** Garbage Collector
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -263,15 +263,16 @@ static void propagatemarks (GCState *st) {
263 263
264static int hasmark (const TObject *o) { 264static int hasmark (const TObject *o) {
265 switch (ttype(o)) { 265 switch (ttype(o)) {
266 case LUA_TSTRING:
267 return tsvalue(o)->tsv.marked;
268 case LUA_TUSERDATA: 266 case LUA_TUSERDATA:
269 return isudmarked(uvalue(o)); 267 return isudmarked(uvalue(o));
270 case LUA_TTABLE: 268 case LUA_TTABLE:
271 return ismarked(hvalue(o)); 269 return ismarked(hvalue(o));
272 case LUA_TFUNCTION: 270 case LUA_TFUNCTION:
273 return clvalue(o)->c.marked; 271 return clvalue(o)->c.marked;
274 default: /* number, nil, boolean */ 272 case LUA_TSTRING:
273 strmark(tsvalue(o)); /* strings are `values', so are never weak */
274 /* go through */
275 default: /* number, nil, boolean, udataval */
275 return 1; 276 return 1;
276 } 277 }
277} 278}