Ignore:
Timestamp:
Jan 9, 2014, 9:21:02 AM (11 years ago)
Author:
[email protected]
Message:

Unreviewed, rolling out r161540.
http://trac.webkit.org/changeset/161540
https://bugs.webkit.org/show_bug.cgi?id=126704

Caused assertion failures on multiple tests (Requested by ap
on #webkit).

Source/JavaScriptCore:

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::visitAggregate):

  • bytecode/CodeBlock.h:

(JSC::CodeBlockSet::mark):

  • dfg/DFGOperations.cpp:
  • heap/CodeBlockSet.cpp:

(JSC::CodeBlockSet::add):
(JSC::CodeBlockSet::traceMarked):

  • heap/CodeBlockSet.h:
  • heap/CopiedBlockInlines.h:

(JSC::CopiedBlock::reportLiveBytes):

  • heap/CopiedSpace.cpp:
  • heap/CopiedSpace.h:
  • heap/Heap.cpp:

(JSC::Heap::Heap):
(JSC::Heap::didAbandon):
(JSC::Heap::markRoots):
(JSC::Heap::copyBackingStores):
(JSC::Heap::collectAllGarbage):
(JSC::Heap::collect):
(JSC::Heap::didAllocate):

  • heap/Heap.h:

(JSC::Heap::shouldCollect):
(JSC::Heap::isCollecting):
(JSC::Heap::isWriteBarrierEnabled):
(JSC::Heap::writeBarrier):

  • heap/HeapOperation.h:
  • heap/MarkStack.cpp:

(JSC::MarkStackArray::~MarkStackArray):

  • heap/MarkStack.h:
  • heap/MarkedAllocator.cpp:

(JSC::MarkedAllocator::isPagedOut):
(JSC::MarkedAllocator::tryAllocateHelper):
(JSC::MarkedAllocator::addBlock):
(JSC::MarkedAllocator::removeBlock):

  • heap/MarkedAllocator.h:

(JSC::MarkedAllocator::MarkedAllocator):
(JSC::MarkedAllocator::reset):

  • heap/MarkedBlock.cpp:
  • heap/MarkedBlock.h:

(JSC::MarkedBlock::lastChanceToFinalize):
(JSC::MarkedBlock::didConsumeEmptyFreeList):
(JSC::MarkedBlock::clearMarks):

  • heap/MarkedSpace.cpp:

(JSC::MarkedSpace::~MarkedSpace):
(JSC::MarkedSpace::resetAllocators):
(JSC::MarkedSpace::visitWeakSets):
(JSC::MarkedSpace::reapWeakSets):

  • heap/MarkedSpace.h:

(JSC::ClearMarks::operator()):
(JSC::MarkedSpace::clearMarks):

  • heap/SlotVisitor.cpp:

(JSC::SlotVisitor::~SlotVisitor):

  • heap/SlotVisitor.h:

(JSC::SlotVisitor::sharedData):

  • heap/SlotVisitorInlines.h:

(JSC::SlotVisitor::internalAppend):
(JSC::SlotVisitor::copyLater):
(JSC::SlotVisitor::reportExtraMemoryUsage):

  • jit/Repatch.cpp:
  • runtime/JSGenericTypedArrayViewInlines.h:

(JSC::JSGenericTypedArrayView<Adaptor>::visitChildren):

  • runtime/JSPropertyNameIterator.h:

(JSC::StructureRareData::setEnumerationCache):

  • runtime/JSString.cpp:

(JSC::JSString::visitChildren):

  • runtime/StructureRareDataInlines.h:

(JSC::StructureRareData::setPreviousID):
(JSC::StructureRareData::setObjectToStringValue):

  • runtime/WeakMapData.cpp:

(JSC::WeakMapData::visitChildren):

Source/WTF:

  • wtf/Bitmap.h:

(WTF::WordType>::count):

File:
1 edited

Legend:

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

    r161540 r161557  
    5858MarkStackArray::~MarkStackArray()
    5959{
    60     ASSERT(m_numberOfSegments == 1);
    61     ASSERT(m_segments.size() == 1);
     60    ASSERT(m_numberOfSegments == 1 && m_segments.size() == 1);
    6261    m_blockAllocator.deallocate(MarkStackSegment::destroy(m_segments.removeHead()));
    63     m_numberOfSegments--;
    64     ASSERT(!m_numberOfSegments);
    65     ASSERT(!m_segments.size());
    66 }
    67 
    68 void MarkStackArray::clear()
    69 {
    70     if (!m_segments.head())
    71         return;
    72     MarkStackSegment* next;
    73     for (MarkStackSegment* current = m_segments.head(); current->next(); current = next) {
    74         next = current->next();
    75         m_segments.remove(current);
    76         m_blockAllocator.deallocate(MarkStackSegment::destroy(current));
    77     }
    78     m_top = 0;
    79     m_numberOfSegments = 1;
    80 #if !ASSERT_DISABLED
    81     m_segments.head()->m_top = 0;
    82 #endif
    8362}
    8463
     
    189168}
    190169
    191 void MarkStackArray::fillVector(Vector<const JSCell*>& vector)
    192 {
    193     ASSERT(vector.size() == size());
    194 
    195     MarkStackSegment* currentSegment = m_segments.head();
    196     if (!currentSegment)
    197         return;
    198 
    199     unsigned count = 0;
    200     for (unsigned i = 0; i < m_top; ++i) {
    201         ASSERT(currentSegment->data()[i]);
    202         vector[count++] = currentSegment->data()[i];
    203     }
    204 
    205     currentSegment = currentSegment->next();
    206     while (currentSegment) {
    207         for (unsigned i = 0; i < s_segmentCapacity; ++i) {
    208             ASSERT(currentSegment->data()[i]);
    209             vector[count++] = currentSegment->data()[i];
    210         }
    211         currentSegment = currentSegment->next();
    212     }
    213 }
    214 
    215170} // namespace JSC
Note: See TracChangeset for help on using the changeset viewer.