Changeset 14723 for trunk/source/lisp-kernel/x86-gc.c
- Timestamp:
- Apr 21, 2011, 9:20:04 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/lisp-kernel/x86-gc.c
r14619 r14723 1254 1254 Some headers are "interesting", to the forwarder if not to us. 1255 1255 1256 1256 */ 1257 1257 1258 1258 /* … … 1262 1262 a time and doing a cntlzw instruction; and don't want to have to 1263 1263 check for (< memo_dnode num_memo_dnodes) in the loop. 1264 1264 */ 1265 1265 1266 1266 { … … 1298 1298 x2 = *p++; 1299 1299 bits &= ~(BIT0_MASK >> bitidx); 1300 1300 1301 1301 1302 if (hashp) { … … 1330 1331 hash_table_vector_header *hp = (hash_table_vector_header *)(p - 2); 1331 1332 if (hp->flags & nhash_weak_mask) { 1332 /* If header_count is odd, this cuts off the last header field */ 1333 /* That case is handled specially above */ 1334 hash_dnode_limit = memo_dnode + ((hash_table_vector_header_count) >>1); 1335 hashp = hp; 1336 mark_method = 3; 1333 /* Work around the issue that seems to cause ticket:817, 1334 which is that tenured hash vectors that are weak on value 1335 aren't always maintained on GCweakvll. If they aren't and 1336 we process them weakly here, nothing will delete the unreferenced 1337 elements. */ 1338 if (!(hp->flags & nhash_weak_value_mask)) { 1339 /* If header_count is odd, this cuts off the last header field */ 1340 /* That case is handled specially above */ 1341 hash_dnode_limit = memo_dnode + ((hash_table_vector_header_count) >>1); 1342 hashp = hp; 1343 mark_method = 3; 1344 1345 1346 1347 1348 1349 } 1337 1350 } 1338 1351 }
Note: See TracChangeset
for help on using the changeset viewer.