Title: [119048] branches/safari-536-branch/Source/_javascript_Core
Revision
119048
Author
[email protected]
Date
2012-05-30 21:20:17 -0700 (Wed, 30 May 2012)

Log Message

Merged r118810 -> <rdar://problem/11459513>

Modified Paths

Diff

Modified: branches/safari-536-branch/Source/_javascript_Core/ChangeLog (119047 => 119048)


--- branches/safari-536-branch/Source/_javascript_Core/ChangeLog	2012-05-31 04:12:00 UTC (rev 119047)
+++ branches/safari-536-branch/Source/_javascript_Core/ChangeLog	2012-05-31 04:20:17 UTC (rev 119048)
@@ -1,5 +1,31 @@
 2012-05-30  Lucas Forschler  <[email protected]>
 
+    Merge 118810
+
+    2012-05-29  Mark Hahnenberg  <[email protected]>
+
+            CopiedSpace::doneCopying could start another collection
+            https://bugs.webkit.org/show_bug.cgi?id=86538
+
+            Reviewed by Geoffrey Garen.
+
+            It's possible that if we don't have anything at the head of to-space 
+            after a collection and the BlockAllocator doesn't have any fresh blocks 
+            to give us right now we could start another collection while still in 
+            the middle of the first collection when we call CopiedSpace::addNewBlock(). 
+
+            One way to resolve this would be to have Heap::shouldCollect() check that 
+            m_operationInProgress is NoOperation. This would prevent the path in 
+            getFreshBlock() that starts the collection if we're already in the middle of one.
+
+            I could not come up with a test case to reproduce this crash on ToT.
+
+            * heap/Heap.h:
+            (JSC::Heap::shouldCollect): We shouldn't collect if we're already in the middle
+            of a collection, i.e. the current operation should be NoOperation.
+
+2012-05-30  Lucas Forschler  <[email protected]>
+
     Merge <rdar://problem/11519288>
 
 2012-05-23  Lucas Forschler  <[email protected]>

Modified: branches/safari-536-branch/Source/_javascript_Core/heap/Heap.h (119047 => 119048)


--- branches/safari-536-branch/Source/_javascript_Core/heap/Heap.h	2012-05-31 04:12:00 UTC (rev 119047)
+++ branches/safari-536-branch/Source/_javascript_Core/heap/Heap.h	2012-05-31 04:20:17 UTC (rev 119048)
@@ -253,9 +253,9 @@
     inline bool Heap::shouldCollect()
     {
 #if ENABLE(GGC)
-        return m_objectSpace.nurseryWaterMark() >= m_minBytesPerCycle && m_isSafeToCollect;
+        return m_objectSpace.nurseryWaterMark() >= m_minBytesPerCycle && m_isSafeToCollect && m_operationInProgress == NoOperation;
 #else
-        return m_bytesAllocated > m_bytesAllocatedLimit && m_isSafeToCollect;
+        return m_bytesAllocated > m_bytesAllocatedLimit && m_isSafeToCollect && m_operationInProgress == NoOperation;
 #endif
     }
 
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to