Changeset 155406 in webkit
- Timestamp:
- Sep 9, 2013, 5:35:19 PM (13 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 3 edited
-
ChangeLog (modified) (1 diff)
-
heap/MarkedSpace.cpp (modified) (2 diffs)
-
heap/MarkedSpace.h (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r155399 r155406 1 2013-09-09 Mark Hahnenberg <mhahnenberg@apple.com> 2 3 CopiedSpace::startedCopying should not call MarkedSpace::capacity 4 https://bugs.webkit.org/show_bug.cgi?id=121045 5 6 Reviewed by Geoffrey Garen. 7 8 MarkedSpace::capacity() iterates every block in MarkedSpace. Instead we should just 9 keep track of our total capacity in MarkedSpace as we add and remove MarkedBlocks. 10 11 * heap/MarkedSpace.cpp: 12 (JSC::MarkedSpace::freeBlock): 13 * heap/MarkedSpace.h: 14 (JSC::MarkedSpace::didAddBlock): 15 (JSC::MarkedSpace::capacity): 16 1 17 2013-09-09 Michael Saboff <msaboff@apple.com> 2 18 -
trunk/Source/JavaScriptCore/heap/MarkedSpace.cpp
r155316 r155406 80 80 MarkedSpace::MarkedSpace(Heap* heap) 81 81 : m_heap(heap) 82 , m_capacity(0) 82 83 { 83 84 for (size_t cellSize = preciseStep; cellSize <= preciseCutoff; cellSize += preciseStep) { … … 196 197 { 197 198 block->allocator()->removeBlock(block); 199 m_capacity -= block->capacity(); 198 200 m_blocks.remove(block); 199 201 if (block->capacity() == MarkedBlock::blockSize) { -
trunk/Source/JavaScriptCore/heap/MarkedSpace.h
r155316 r155406 58 58 struct Size : MarkedBlock::CountFunctor { 59 59 void operator()(MarkedBlock* block) { count(block->markCount() * block->cellSize()); } 60 };61 62 struct Capacity : MarkedBlock::CountFunctor {63 void operator()(MarkedBlock* block) { count(block->capacity()); }64 60 }; 65 61 … … 137 133 138 134 Heap* m_heap; 135 size_t m_capacity; 139 136 MarkedBlockSet m_blocks; 140 137 }; … … 246 243 inline void MarkedSpace::didAddBlock(MarkedBlock* block) 247 244 { 245 m_capacity += block->capacity(); 248 246 m_blocks.add(block); 249 247 } … … 266 264 inline size_t MarkedSpace::capacity() 267 265 { 268 return forEachBlock<Capacity>();266 return m_capacity; 269 267 } 270 268
Note:
See TracChangeset
for help on using the changeset viewer.