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