Changeset 13278
- Timestamp:
- Dec 9, 2009, 10:35:18 AM (15 years ago)
- Location:
- branches/working-0711/ccl/lisp-kernel
- Files:
-
- 2 edited
-
gc-common.c (modified) (3 diffs)
-
x86-gc.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
branches/working-0711/ccl/lisp-kernel/gc-common.c
r13263 r13278 1222 1222 */ 1223 1223 LispObj this = lisp_global(WEAKVLL); /* all populations as of last gc */ 1224 LispObj *tenured_low = (LispObj *)tenured_area->low; 1225 natural tenured_dnodes = area_dnode(GCarealow, tenured_low); 1226 bitvector refbits = tenured_area->refbits; 1227 1224 1228 while (this) { 1225 1229 LispObj *base = ptr_from_lispobj(this); … … 1229 1233 base[1] = GCweakvll; 1230 1234 GCweakvll = ptr_to_lispobj(base); 1235 /* Since will be doing weak processing, don't treat the data as root */ 1236 dnode = area_dnode(&base[3], tenured_low); 1237 if (dnode < tenured_dnodes) { 1238 clr_bit(refbits, dnode); 1239 } 1231 1240 } 1232 1241 else { … … 1379 1388 reap_gcable_ptrs(); 1380 1389 1390 /* Restore population data refbits for forwarding */ 1391 if (GCn_ephemeral_dnodes) { 1392 LispObj *tenured_low = (LispObj *)tenured_area->low; 1393 natural tenured_dnodes = area_dnode(GCarealow, tenured_low); 1394 bitvector refbits = tenured_area->refbits; 1395 LispObj this = lisp_global(WEAKVLL); 1396 1397 while (this) { 1398 LispObj *base = ptr_from_lispobj(this); 1399 natural dnode = area_dnode(&base[3], tenured_low); 1400 if ((dnode < tenured_dnodes) && (base[3] >= GCarealow)) { 1401 set_bit(refbits, dnode); 1402 } 1403 this = base[1]; 1404 } 1405 } 1406 1381 1407 GCrelocptr = global_reloctab; 1382 1408 GCfirstunmarked = calculate_relocation(); -
branches/working-0711/ccl/lisp-kernel/x86-gc.c
r13263 r13278 1205 1205 ref_dnode = area_dnode(start, base); 1206 1206 if (!ref_bit(refbits, ref_dnode)) { 1207 Bug(NULL, "Missing memoization in doublenode at 0x %08X", start);1207 Bug(NULL, "Missing memoization in doublenode at 0x" LISP "\n", start); 1208 1208 set_bit(refbits, ref_dnode); 1209 1209 }
Note:
See TracChangeset
for help on using the changeset viewer.
