- size_t result = 0;
- BlockIterator end = m_blocks.end();
- for (BlockIterator it = m_blocks.begin(); it != end; ++it)
- result += (*it)->markCount();
- return result;
+ for (size_t cellSize = preciseStep; cellSize <= preciseCutoff; cellSize += preciseStep) {
+ allocatorFor(cellSize).canonicalizeCellLivenessData();
+ normalDestructorAllocatorFor(cellSize).canonicalizeCellLivenessData();
+ immortalStructureDestructorAllocatorFor(cellSize).canonicalizeCellLivenessData();
+ }
+
+ for (size_t cellSize = impreciseStep; cellSize <= impreciseCutoff; cellSize += impreciseStep) {
+ allocatorFor(cellSize).canonicalizeCellLivenessData();
+ normalDestructorAllocatorFor(cellSize).canonicalizeCellLivenessData();
+ immortalStructureDestructorAllocatorFor(cellSize).canonicalizeCellLivenessData();
+ }
+
+ m_normalSpace.largeAllocator.canonicalizeCellLivenessData();
+ m_normalDestructorSpace.largeAllocator.canonicalizeCellLivenessData();
+ m_immortalStructureDestructorSpace.largeAllocator.canonicalizeCellLivenessData();