Title: [119909] trunk/Source/_javascript_Core
Revision
119909
Author
[email protected]
Date
2012-06-09 10:34:30 -0700 (Sat, 09 Jun 2012)

Log Message

Unreviewed, rolling back in part2 of r118646.

This patch removes eager finalization.

Weak pointer finalization should be lazy
https://bugs.webkit.org/show_bug.cgi?id=87599

Reviewed by Sam Weinig.

* heap/Heap.cpp:
(JSC::Heap::collect): Don't finalize eagerly -- we'll do it lazily.

* heap/MarkedBlock.cpp:
(JSC::MarkedBlock::sweep): Do sweep weak sets when sweeping a block,
since we won't get another chance.

* heap/MarkedBlock.h:
(JSC::MarkedBlock::sweepWeakSet):
* heap/MarkedSpace.cpp:
(MarkedSpace::WeakSetSweep):
* heap/MarkedSpace.h:
(JSC::MarkedSpace::sweepWeakSets): Removed now-unused code.

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (119908 => 119909)


--- trunk/Source/_javascript_Core/ChangeLog	2012-06-09 17:11:58 UTC (rev 119908)
+++ trunk/Source/_javascript_Core/ChangeLog	2012-06-09 17:34:30 UTC (rev 119909)
@@ -1,3 +1,28 @@
+2012-06-09  Geoffrey Garen  <[email protected]>
+
+        Unreviewed, rolling back in part2 of r118646.
+
+        This patch removes eager finalization.
+
+        Weak pointer finalization should be lazy
+        https://bugs.webkit.org/show_bug.cgi?id=87599
+
+        Reviewed by Sam Weinig.
+
+        * heap/Heap.cpp:
+        (JSC::Heap::collect): Don't finalize eagerly -- we'll do it lazily.
+
+        * heap/MarkedBlock.cpp:
+        (JSC::MarkedBlock::sweep): Do sweep weak sets when sweeping a block,
+        since we won't get another chance.
+
+        * heap/MarkedBlock.h:
+        (JSC::MarkedBlock::sweepWeakSet):
+        * heap/MarkedSpace.cpp:
+        (MarkedSpace::WeakSetSweep):
+        * heap/MarkedSpace.h:
+        (JSC::MarkedSpace::sweepWeakSets): Removed now-unused code.
+
 2012-06-09  Sukolsak Sakshuwong  <[email protected]>
 
         Add UNDO_MANAGER flag
@@ -7,7 +32,7 @@
 
         * Configurations/FeatureDefines.xcconfig:
 
-2012-06-02  Geoffrey Garen  <[email protected]>
+2012-06-08  Geoffrey Garen  <[email protected]>
 
         Unreviewed, rolling back in part1 of r118646.
 

Modified: trunk/Source/_javascript_Core/heap/Heap.cpp (119908 => 119909)


--- trunk/Source/_javascript_Core/heap/Heap.cpp	2012-06-09 17:11:58 UTC (rev 119908)
+++ trunk/Source/_javascript_Core/heap/Heap.cpp	2012-06-09 17:34:30 UTC (rev 119909)
@@ -734,8 +734,7 @@
     }
 
     {
-        GCPHASE(FinalizeWeakHandles);
-        m_objectSpace.sweepWeakSets();
+        GCPHASE(finalizeSmallStrings);
         m_globalData->smallStrings.finalizeSmallStrings();
     }
 

Modified: trunk/Source/_javascript_Core/heap/MarkedBlock.cpp (119908 => 119909)


--- trunk/Source/_javascript_Core/heap/MarkedBlock.cpp	2012-06-09 17:11:58 UTC (rev 119908)
+++ trunk/Source/_javascript_Core/heap/MarkedBlock.cpp	2012-06-09 17:34:30 UTC (rev 119909)
@@ -114,6 +114,8 @@
 {
     HEAP_LOG_BLOCK_STATE_TRANSITION(this);
 
+    m_weakSet.sweep();
+
     if (sweepMode == SweepOnly && !m_cellsNeedDestruction)
         return FreeList();
 

Modified: trunk/Source/_javascript_Core/heap/MarkedBlock.h (119908 => 119909)


--- trunk/Source/_javascript_Core/heap/MarkedBlock.h	2012-06-09 17:11:58 UTC (rev 119908)
+++ trunk/Source/_javascript_Core/heap/MarkedBlock.h	2012-06-09 17:34:30 UTC (rev 119909)
@@ -132,7 +132,6 @@
 
         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
@@ -283,11 +282,6 @@
         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 (119908 => 119909)


--- trunk/Source/_javascript_Core/heap/MarkedSpace.cpp	2012-06-09 17:11:58 UTC (rev 119908)
+++ trunk/Source/_javascript_Core/heap/MarkedSpace.cpp	2012-06-09 17:34:30 UTC (rev 119909)
@@ -77,10 +77,6 @@
     void operator()(MarkedBlock* block) { block->reapWeakSet(); }
 };
 
-struct SweepWeakSet : MarkedBlock::VoidFunctor {
-    void operator()(MarkedBlock* block) { block->sweepWeakSet(); }
-};
-
 MarkedSpace::MarkedSpace(Heap* heap)
     : m_heap(heap)
 {
@@ -136,11 +132,6 @@
     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 (119908 => 119909)


--- trunk/Source/_javascript_Core/heap/MarkedSpace.h	2012-06-09 17:11:58 UTC (rev 119908)
+++ trunk/Source/_javascript_Core/heap/MarkedSpace.h	2012-06-09 17:34:30 UTC (rev 119909)
@@ -85,7 +85,6 @@
 
     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