⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 155406 in webkit


Ignore:
Timestamp:
Sep 9, 2013, 5:35:19 PM (13 years ago)
Author:
mhahnenberg@apple.com
Message:

CopiedSpace::startedCopying should not call MarkedSpace::capacity
https://bugs.webkit.org/show_bug.cgi?id=121045

Reviewed by Geoffrey Garen.

MarkedSpace::capacity() iterates every block in MarkedSpace. Instead we should just
keep track of our total capacity in MarkedSpace as we add and remove MarkedBlocks.

  • heap/MarkedSpace.cpp:

(JSC::MarkedSpace::freeBlock):

  • heap/MarkedSpace.h:

(JSC::MarkedSpace::didAddBlock):
(JSC::MarkedSpace::capacity):

Location:
trunk/Source/JavaScriptCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r155399 r155406  
     12013-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
    1172013-09-09  Michael Saboff  <msaboff@apple.com>
    218
  • trunk/Source/JavaScriptCore/heap/MarkedSpace.cpp

    r155316 r155406  
    8080MarkedSpace::MarkedSpace(Heap* heap)
    8181    : m_heap(heap)
     82    , m_capacity(0)
    8283{
    8384    for (size_t cellSize = preciseStep; cellSize <= preciseCutoff; cellSize += preciseStep) {
     
    196197{
    197198    block->allocator()->removeBlock(block);
     199    m_capacity -= block->capacity();
    198200    m_blocks.remove(block);
    199201    if (block->capacity() == MarkedBlock::blockSize) {
  • trunk/Source/JavaScriptCore/heap/MarkedSpace.h

    r155316 r155406  
    5858struct Size : MarkedBlock::CountFunctor {
    5959    void operator()(MarkedBlock* block) { count(block->markCount() * block->cellSize()); }
    60 };
    61 
    62 struct Capacity : MarkedBlock::CountFunctor {
    63     void operator()(MarkedBlock* block) { count(block->capacity()); }
    6460};
    6561
     
    137133
    138134    Heap* m_heap;
     135    size_t m_capacity;
    139136    MarkedBlockSet m_blocks;
    140137};
     
    246243inline void MarkedSpace::didAddBlock(MarkedBlock* block)
    247244{
     245    m_capacity += block->capacity();
    248246    m_blocks.add(block);
    249247}
     
    266264inline size_t MarkedSpace::capacity()
    267265{
    268     return forEachBlock<Capacity>();
     266    return m_capacity;
    269267}
    270268
Note: See TracChangeset for help on using the changeset viewer.