Title: [155056] trunk/Source/_javascript_Core
Revision
155056
Author
[email protected]
Date
2013-09-04 12:06:30 -0700 (Wed, 04 Sep 2013)

Log Message

ASSERT in MarkedAllocator::allocateSlowCase is wrong
https://bugs.webkit.org/show_bug.cgi?id=120639

Reviewed by Oliver Hunt.

ASSERT(!m_heap->shouldCollect()) is no longer true due to our use of the GC
deferral mechanism. We could technically be beyond our byte allocation limit,
but still not try to collect due to deferral. This patch amends shouldCollect()
to return false if GC is currently deferred.

* heap/Heap.h:
(JSC::Heap::shouldCollect):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (155055 => 155056)


--- trunk/Source/_javascript_Core/ChangeLog	2013-09-04 18:50:54 UTC (rev 155055)
+++ trunk/Source/_javascript_Core/ChangeLog	2013-09-04 19:06:30 UTC (rev 155056)
@@ -1,3 +1,18 @@
+2013-09-04  Mark Hahnenberg  <[email protected]>
+
+        ASSERT in MarkedAllocator::allocateSlowCase is wrong
+        https://bugs.webkit.org/show_bug.cgi?id=120639
+
+        Reviewed by Oliver Hunt.
+
+        ASSERT(!m_heap->shouldCollect()) is no longer true due to our use of the GC 
+        deferral mechanism. We could technically be beyond our byte allocation limit, 
+        but still not try to collect due to deferral. This patch amends shouldCollect() 
+        to return false if GC is currently deferred.
+
+        * heap/Heap.h:
+        (JSC::Heap::shouldCollect):
+
 2013-09-03  Filip Pizlo  <[email protected]>
 
         The DFG should be able to tier-up and OSR enter into the FTL

Modified: trunk/Source/_javascript_Core/heap/Heap.h (155055 => 155056)


--- trunk/Source/_javascript_Core/heap/Heap.h	2013-09-04 18:50:54 UTC (rev 155055)
+++ trunk/Source/_javascript_Core/heap/Heap.h	2013-09-04 19:06:30 UTC (rev 155056)
@@ -305,6 +305,8 @@
 
     inline bool Heap::shouldCollect()
     {
+        if (isDeferred())
+            return false;
         if (Options::gcMaxHeapSize())
             return m_bytesAllocated > Options::gcMaxHeapSize() && m_isSafeToCollect && m_operationInProgress == NoOperation;
         return m_bytesAllocated > m_bytesAllocatedLimit && m_isSafeToCollect && m_operationInProgress == NoOperation;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to