Changeset 3482
- Timestamp:
- 05/03/08 22:09:39 (7 months ago)
- Files:
-
- trunk/lib/gc/basic/gcx.d (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/lib/gc/basic/gcx.d
r3349 r3482 2099 2099 void **p1 = cast(void **)pbot; 2100 2100 void **p2 = cast(void **)ptop; 2101 size_t pcache = 0; 2101 2102 uint changes = 0; 2102 2103 … … 2108 2109 2109 2110 //if (log) debug(PRINTF) printf("\tmark %x\n", p); 2110 if (p >= minAddr) 2111 { 2111 if (p >= minAddr && p < maxAddr) 2112 { 2113 if ((cast(size_t)p & ~(PAGESIZE-1)) == pcache) 2114 continue; 2115 2112 2116 pool = findPool(p); 2113 2117 if (pool) … … 2138 2142 continue; 2139 2143 } 2144 2145 if (bin >= B_PAGE) // Cache B_PAGE and B_PAGEPLUS lookups 2146 pcache = cast(size_t)p & ~(PAGESIZE-1); 2140 2147 2141 2148 //debug(PRINTF) printf("\t\tmark(x%x) = %d\n", biti, pool.mark.test(biti));












