aboutsummaryrefslogtreecommitdiff
path: root/lgc.c
diff options
context:
space:
mode:
Diffstat (limited to 'lgc.c')
-rw-r--r--lgc.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/lgc.c b/lgc.c
index 71cacd1d..fe9bed2d 100644
--- a/lgc.c
+++ b/lgc.c
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: lgc.c,v 1.169 2003/02/11 10:46:24 roberto Exp roberto $ 2** $Id: lgc.c,v 1.170 2003/03/18 12:50:04 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*/
@@ -158,7 +158,8 @@ static void traversetable (GCState *st, Table *h) {
158 if (weakkey || weakvalue) { /* is really weak? */ 158 if (weakkey || weakvalue) { /* is really weak? */
159 GCObject **weaklist; 159 GCObject **weaklist;
160 h->marked &= ~(KEYWEAK | VALUEWEAK); /* clear bits */ 160 h->marked &= ~(KEYWEAK | VALUEWEAK); /* clear bits */
161 h->marked |= (weakkey << KEYWEAKBIT) | (weakvalue << VALUEWEAKBIT); 161 h->marked |= cast(lu_byte, (weakkey << KEYWEAKBIT) |
162 (weakvalue << VALUEWEAKBIT));
162 weaklist = (weakkey && weakvalue) ? &st->wkv : 163 weaklist = (weakkey && weakvalue) ? &st->wkv :
163 (weakkey) ? &st->wk : 164 (weakkey) ? &st->wk :
164 &st->wv; 165 &st->wv;