Title: [148616] trunk/Source/_javascript_Core
Revision
148616
Author
[email protected]
Date
2013-04-17 09:32:44 -0700 (Wed, 17 Apr 2013)

Log Message

releaseExecutableMemory() should canonicalize cell liveness data before
it scans the GC roots.
https://bugs.webkit.org/show_bug.cgi?id=114733.

Reviewed by Mark Hahnenberg.

* heap/Heap.cpp:
(JSC::Heap::canonicalizeCellLivenessData):
* heap/Heap.h:
* runtime/JSGlobalData.cpp:
(JSC::JSGlobalData::releaseExecutableMemory):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (148615 => 148616)


--- trunk/Source/_javascript_Core/ChangeLog	2013-04-17 16:15:09 UTC (rev 148615)
+++ trunk/Source/_javascript_Core/ChangeLog	2013-04-17 16:32:44 UTC (rev 148616)
@@ -1,3 +1,17 @@
+2013-04-17  Mark Lam  <[email protected]>
+
+        releaseExecutableMemory() should canonicalize cell liveness data before
+        it scans the GC roots.
+        https://bugs.webkit.org/show_bug.cgi?id=114733.
+
+        Reviewed by Mark Hahnenberg.
+
+        * heap/Heap.cpp:
+        (JSC::Heap::canonicalizeCellLivenessData):
+        * heap/Heap.h:
+        * runtime/JSGlobalData.cpp:
+        (JSC::JSGlobalData::releaseExecutableMemory):
+
 2013-04-16  Commit Queue  <[email protected]>
 
         Unreviewed, rolling out r148576.

Modified: trunk/Source/_javascript_Core/heap/Heap.cpp (148615 => 148616)


--- trunk/Source/_javascript_Core/heap/Heap.cpp	2013-04-17 16:15:09 UTC (rev 148615)
+++ trunk/Source/_javascript_Core/heap/Heap.cpp	2013-04-17 16:32:44 UTC (rev 148616)
@@ -405,6 +405,11 @@
     return m_globalData->interpreter->stack();
 }
 
+void Heap::canonicalizeCellLivenessData()
+{
+    m_objectSpace.canonicalizeCellLivenessData();
+}
+
 void Heap::getConservativeRegisterRoots(HashSet<JSCell*>& roots)
 {
     ASSERT(isValidThreadState(m_globalData));

Modified: trunk/Source/_javascript_Core/heap/Heap.h (148615 => 148616)


--- trunk/Source/_javascript_Core/heap/Heap.h	2013-04-17 16:15:09 UTC (rev 148615)
+++ trunk/Source/_javascript_Core/heap/Heap.h	2013-04-17 16:32:44 UTC (rev 148616)
@@ -161,6 +161,7 @@
         HandleSet* handleSet() { return &m_handleSet; }
         HandleStack* handleStack() { return &m_handleStack; }
 
+        void canonicalizeCellLivenessData();
         void getConservativeRegisterRoots(HashSet<JSCell*>& roots);
 
         double lastGCLength() { return m_lastGCLength; }

Modified: trunk/Source/_javascript_Core/runtime/JSGlobalData.cpp (148615 => 148616)


--- trunk/Source/_javascript_Core/runtime/JSGlobalData.cpp	2013-04-17 16:15:09 UTC (rev 148615)
+++ trunk/Source/_javascript_Core/runtime/JSGlobalData.cpp	2013-04-17 16:32:44 UTC (rev 148616)
@@ -487,6 +487,7 @@
     if (dynamicGlobalObject) {
         StackPreservingRecompiler recompiler;
         HashSet<JSCell*> roots;
+        heap.canonicalizeCellLivenessData();
         heap.getConservativeRegisterRoots(roots);
         HashSet<JSCell*>::iterator end = roots.end();
         for (HashSet<JSCell*>::iterator ptr = roots.begin(); ptr != end; ++ptr) {
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to