Commit d4eb0d39 authored by mark.lam@apple.com's avatar mark.lam@apple.com

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):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148616 268f45cc-cd09-0410-ab3c-d52691b4dbfc
parent 874127a8
2013-04-17 Mark Lam <mark.lam@apple.com>
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 <rniwa@webkit.org>
Unreviewed, rolling out r148576.
......@@ -405,6 +405,11 @@ inline JSStack& Heap::stack()
return m_globalData->interpreter->stack();
}
void Heap::canonicalizeCellLivenessData()
{
m_objectSpace.canonicalizeCellLivenessData();
}
void Heap::getConservativeRegisterRoots(HashSet<JSCell*>& roots)
{
ASSERT(isValidThreadState(m_globalData));
......
......@@ -161,6 +161,7 @@ namespace JSC {
HandleSet* handleSet() { return &m_handleSet; }
HandleStack* handleStack() { return &m_handleStack; }
void canonicalizeCellLivenessData();
void getConservativeRegisterRoots(HashSet<JSCell*>& roots);
double lastGCLength() { return m_lastGCLength; }
......
......@@ -487,6 +487,7 @@ void JSGlobalData::releaseExecutableMemory()
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) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment