Title: [92251] trunk/Source/_javascript_Core
Revision
92251
Author
[email protected]
Date
2011-08-02 18:48:13 -0700 (Tue, 02 Aug 2011)

Log Message

JSC GC may not be able to reuse partially-free blocks after a
full collection
https://bugs.webkit.org/show_bug.cgi?id=65585

Reviewed by Darin Adler.

This fixes the linked list management bug.  This fix is performance
neutral on SunSpider.

* heap/NewSpace.cpp:
(JSC::NewSpace::removeBlock):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (92250 => 92251)


--- trunk/Source/_javascript_Core/ChangeLog	2011-08-03 00:41:11 UTC (rev 92250)
+++ trunk/Source/_javascript_Core/ChangeLog	2011-08-03 01:48:13 UTC (rev 92251)
@@ -1,3 +1,17 @@
+2011-08-02  Filip Pizlo  <[email protected]>
+
+        JSC GC may not be able to reuse partially-free blocks after a
+        full collection
+        https://bugs.webkit.org/show_bug.cgi?id=65585
+
+        Reviewed by Darin Adler.
+        
+        This fixes the linked list management bug.  This fix is performance
+        neutral on SunSpider.
+
+        * heap/NewSpace.cpp:
+        (JSC::NewSpace::removeBlock):
+
 2011-07-30  Oliver Hunt  <[email protected]>
 
         Simplify JSFunction creation for functions written in JS

Modified: trunk/Source/_javascript_Core/heap/NewSpace.cpp (92250 => 92251)


--- trunk/Source/_javascript_Core/heap/NewSpace.cpp	2011-08-03 00:41:11 UTC (rev 92250)
+++ trunk/Source/_javascript_Core/heap/NewSpace.cpp	2011-08-03 01:48:13 UTC (rev 92251)
@@ -58,7 +58,8 @@
 {
     block->setInNewSpace(false);
     SizeClass& sizeClass = sizeClassFor(block->cellSize());
-    sizeClass.nextBlock = block->next();
+    if (sizeClass.nextBlock == block)
+        sizeClass.nextBlock = block->next();
     sizeClass.blockList.remove(block);
 }
 
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to