Title: [118901] trunk/Source/_javascript_Core
Revision
118901
Author
[email protected]
Date
2012-05-30 00:17:05 -0700 (Wed, 30 May 2012)

Log Message

Unreviewed, rolling out r118868.
http://trac.webkit.org/changeset/118868
https://bugs.webkit.org/show_bug.cgi?id=87828

introduced ~20 crashes on Mac and Qt bots (Requested by pizlo_
on #webkit).

Patch by Sheriff Bot <[email protected]> on 2012-05-30

* heap/Heap.cpp:
(JSC::Heap::collect):
* heap/MarkedBlock.cpp:
(JSC::MarkedBlock::sweep):
* heap/MarkedBlock.h:
(JSC::MarkedBlock::sweepWeakSet):
(JSC):
* heap/MarkedSpace.cpp:
(JSC::SweepWeakSet::operator()):
(JSC):
(JSC::MarkedSpace::sweepWeakSets):
* heap/MarkedSpace.h:
(MarkedSpace):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (118900 => 118901)


--- trunk/Source/_javascript_Core/ChangeLog	2012-05-30 07:01:08 UTC (rev 118900)
+++ trunk/Source/_javascript_Core/ChangeLog	2012-05-30 07:17:05 UTC (rev 118901)
@@ -1,3 +1,26 @@
+2012-05-30  Sheriff Bot  <[email protected]>
+
+        Unreviewed, rolling out r118868.
+        http://trac.webkit.org/changeset/118868
+        https://bugs.webkit.org/show_bug.cgi?id=87828
+
+        introduced ~20 crashes on Mac and Qt bots (Requested by pizlo_
+        on #webkit).
+
+        * heap/Heap.cpp:
+        (JSC::Heap::collect):
+        * heap/MarkedBlock.cpp:
+        (JSC::MarkedBlock::sweep):
+        * heap/MarkedBlock.h:
+        (JSC::MarkedBlock::sweepWeakSet):
+        (JSC):
+        * heap/MarkedSpace.cpp:
+        (JSC::SweepWeakSet::operator()):
+        (JSC):
+        (JSC::MarkedSpace::sweepWeakSets):
+        * heap/MarkedSpace.h:
+        (MarkedSpace):
+
 2012-05-29  Geoffrey Garen  <[email protected]>
 
         Rolled back in r118646, now that

Modified: trunk/Source/_javascript_Core/heap/Heap.cpp (118900 => 118901)


--- trunk/Source/_javascript_Core/heap/Heap.cpp	2012-05-30 07:01:08 UTC (rev 118900)
+++ trunk/Source/_javascript_Core/heap/Heap.cpp	2012-05-30 07:17:05 UTC (rev 118901)
@@ -687,6 +687,7 @@
 
     {
         GCPHASE(FinalizeWeakHandles);
+        m_objectSpace.sweepWeakSets();
         m_globalData->smallStrings.finalizeSmallStrings();
     }
     

Modified: trunk/Source/_javascript_Core/heap/MarkedBlock.cpp (118900 => 118901)


--- trunk/Source/_javascript_Core/heap/MarkedBlock.cpp	2012-05-30 07:01:08 UTC (rev 118900)
+++ trunk/Source/_javascript_Core/heap/MarkedBlock.cpp	2012-05-30 07:17:05 UTC (rev 118901)
@@ -114,8 +114,6 @@
 {
     HEAP_LOG_BLOCK_STATE_TRANSITION(this);
 
-    m_weakSet.sweep();
-
     if (sweepMode == SweepOnly && !m_cellsNeedDestruction)
         return FreeList();
 

Modified: trunk/Source/_javascript_Core/heap/MarkedBlock.h (118900 => 118901)


--- trunk/Source/_javascript_Core/heap/MarkedBlock.h	2012-05-30 07:01:08 UTC (rev 118900)
+++ trunk/Source/_javascript_Core/heap/MarkedBlock.h	2012-05-30 07:17:05 UTC (rev 118901)
@@ -133,6 +133,7 @@
 
         void visitWeakSet(HeapRootVisitor&);
         void reapWeakSet();
+        void sweepWeakSet();
 
         // While allocating from a free list, MarkedBlock temporarily has bogus
         // cell liveness data. To restore accurate cell liveness data, call one
@@ -286,6 +287,11 @@
         m_weakSet.reap();
     }
 
+    inline void MarkedBlock::sweepWeakSet()
+    {
+        m_weakSet.sweep();
+    }
+
     inline void MarkedBlock::didConsumeFreeList()
     {
         HEAP_LOG_BLOCK_STATE_TRANSITION(this);

Modified: trunk/Source/_javascript_Core/heap/MarkedSpace.cpp (118900 => 118901)


--- trunk/Source/_javascript_Core/heap/MarkedSpace.cpp	2012-05-30 07:01:08 UTC (rev 118900)
+++ trunk/Source/_javascript_Core/heap/MarkedSpace.cpp	2012-05-30 07:17:05 UTC (rev 118901)
@@ -77,6 +77,10 @@
     void operator()(MarkedBlock* block) { block->reapWeakSet(); }
 };
 
+struct SweepWeakSet : MarkedBlock::VoidFunctor {
+    void operator()(MarkedBlock* block) { block->sweepWeakSet(); }
+};
+
 MarkedSpace::MarkedSpace(Heap* heap)
     : m_heap(heap)
 {
@@ -138,6 +142,11 @@
     forEachBlock<ReapWeakSet>();
 }
 
+void MarkedSpace::sweepWeakSets()
+{
+    forEachBlock<SweepWeakSet>();
+}
+
 void MarkedSpace::canonicalizeCellLivenessData()
 {
     for (size_t cellSize = preciseStep; cellSize <= preciseCutoff; cellSize += preciseStep) {

Modified: trunk/Source/_javascript_Core/heap/MarkedSpace.h (118900 => 118901)


--- trunk/Source/_javascript_Core/heap/MarkedSpace.h	2012-05-30 07:01:08 UTC (rev 118900)
+++ trunk/Source/_javascript_Core/heap/MarkedSpace.h	2012-05-30 07:17:05 UTC (rev 118901)
@@ -85,6 +85,7 @@
 
     void visitWeakSets(HeapRootVisitor&);
     void reapWeakSets();
+    void sweepWeakSets();
 
     MarkedBlockSet& blocks() { return m_blocks; }
     
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to