diff options
Diffstat (limited to 'lgc.c')
-rw-r--r-- | lgc.c | 5 |
1 files changed, 3 insertions, 2 deletions
@@ -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; |