Changeset 117 for trunk/thune/gc.c
- Timestamp:
- 04/18/06 13:22:12 (3 years ago)
- Files:
-
- 1 modified
-
trunk/thune/gc.c (modified) (10 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/thune/gc.c
r116 r117 145 145 146 146 147 static UBinary bsBlk; 148 static UBinary bsStr; 149 static UBinary blkChecked; 147 static UCollector _gc; 148 149 #define bsBlk _gc.bsBlock 150 #define bsStr _gc.bsBin 150 151 151 152 #ifdef OR_CONFIG_NUMBER_ARRAYS … … 180 181 181 182 #endif 183 184 185 void ur_gcMarkBin( UCollector* gc, UIndex idx ) 186 { 187 ur_setBit( gc->bsBin.ptr.b, idx ); 188 } 189 190 191 void ur_gcMarkBlock( UCollector* gc, UIndex idx ) 192 { 193 ur_setBit( gc->bsBlock.ptr.b, idx ); 194 } 182 195 183 196 … … 204 217 case UT_SETWORD: 205 218 //case UT_LITWORD: // Only atom is used in lit-words? 219 SET_BIT_BLOCK( it->word.wordBlk ); 206 220 SET_BIT_BLOCK( it->word.valBlk ); 207 221 break; … … 245 259 int bitm = 1 << (idx & 7); 246 260 bsBlk.ptr.b[ ai ] |= bitm; 247 blkChecked.ptr.b[ ai ] |= bitm;261 _gc.blkChecked.ptr.b[ ai ] |= bitm; 248 262 } 249 263 … … 277 291 int bitm = 1 << (idx & 7); 278 292 bsBlk.ptr.b[ ai ] |= bitm; 279 if( ! ( blkChecked.ptr.b[ ai ] & bitm) )293 if( ! (_gc.blkChecked.ptr.b[ ai ] & bitm) ) 280 294 { 281 blkChecked.ptr.b[ ai ] |= bitm;295 _gc.blkChecked.ptr.b[ ai ] |= bitm; 282 296 _checkBlock( ur_block( it ) ); 283 297 } … … 299 313 if( idx ) 300 314 ur_setBit( bsBlk.ptr.b, idx ); 315 break; 316 317 case UT_CODE: 318 { 319 ur_language( it )->codeGC( &_gc, it ); 320 } 301 321 break; 302 322 } … … 467 487 #endif 468 488 469 GC_BITSET( blkChecked, ur_env->blocks, SWEEP_START_BLOCK );489 GC_BITSET( _gc.blkChecked, ur_env->blocks, SWEEP_START_BLOCK ); 470 490 471 491 GC_BITSET( bsBlk, ur_env->blocks, SWEEP_START_BLOCK ); … … 491 511 _checkBlock( blk + GLOBAL_VAL_BLKN ); 492 512 493 doneset = blkChecked.ptr.b;513 doneset = _gc.blkChecked.ptr.b; 494 514 ur_setBit( doneset, GLOBAL_VAL_BLKN ); 495 515 ur_setBit( doneset, GLOBAL_WORD_BLKN ); … … 528 548 i = 0; 529 549 markset = bsBlk.ptr.b; 530 doneset = blkChecked.ptr.b;550 doneset = _gc.blkChecked.ptr.b; 531 551 532 552 bit = blk + SWEEP_START_BLOCK; … … 570 590 #endif 571 591 572 ur_arrayFree( & blkChecked );592 ur_arrayFree( &_gc.blkChecked ); 573 593 574 594 ur_arrayFree( &bsBlk );
