Ignore:
Timestamp:
Nov 14, 2011, 10:58:19 PM (14 years ago)
Author:
[email protected]
Message:

Weak reference harvesters should run to fixpoint
https://bugs.webkit.org/show_bug.cgi?id=72346

Reviewed by Oliver Hunt.

  • heap/Heap.cpp:

(JSC::Heap::markRoots):

  • heap/ListableHandler.h:

(JSC::ListableHandler::next):
(JSC::ListableHandler::List::head):
(JSC::ListableHandler::List::removeNext):
(JSC::ListableHandler::List::removeAll):

  • heap/MarkStack.cpp:

(JSC::MarkStackThreadSharedData::reset):
(JSC::SlotVisitor::harvestWeakReferences):

  • heap/MarkStack.h:

(JSC::MarkStack::isEmpty):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/heap/MarkStack.cpp

    r99898 r100242  
    272272    ASSERT(m_opaqueRoots.isEmpty());
    273273#endif
     274   
     275    m_weakReferenceHarvesters.removeAll();
    274276}
    275277
     
    450452void SlotVisitor::harvestWeakReferences()
    451453{
    452     while (m_shared.m_weakReferenceHarvesters.hasNext())
    453         m_shared.m_weakReferenceHarvesters.removeNext()->visitWeakReferences(*this);
     454    for (WeakReferenceHarvester* current = m_shared.m_weakReferenceHarvesters.head(); current; current = current->next())
     455        current->visitWeakReferences(*this);
    454456}
    455457
Note: See TracChangeset for help on using the changeset viewer.