summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore/heap/IncrementalSweeper.cpp
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@digia.com>2012-10-17 16:21:14 +0200
committerSimon Hausmann <simon.hausmann@digia.com>2012-10-17 16:21:14 +0200
commit8995b83bcbfbb68245f779b64e5517627c6cc6ea (patch)
tree17985605dab9263cc2444bd4d45f189e142cca7c /Source/JavaScriptCore/heap/IncrementalSweeper.cpp
parentb9c9652036d5e9f1e29c574f40bc73a35c81ace6 (diff)
downloadqtwebkit-8995b83bcbfbb68245f779b64e5517627c6cc6ea.tar.gz
Imported WebKit commit cf4f8fc6f19b0629f51860cb2d4b25e139d07e00 (http://svn.webkit.org/repository/webkit/trunk@131592)
New snapshot that includes the build fixes for Mac OS X 10.6 and earlier as well as the previously cherry-picked changes
Diffstat (limited to 'Source/JavaScriptCore/heap/IncrementalSweeper.cpp')
-rw-r--r--Source/JavaScriptCore/heap/IncrementalSweeper.cpp25
1 files changed, 4 insertions, 21 deletions
diff --git a/Source/JavaScriptCore/heap/IncrementalSweeper.cpp b/Source/JavaScriptCore/heap/IncrementalSweeper.cpp
index bd1342f2a..4aec4dd51 100644
--- a/Source/JavaScriptCore/heap/IncrementalSweeper.cpp
+++ b/Source/JavaScriptCore/heap/IncrementalSweeper.cpp
@@ -48,7 +48,7 @@ static const double sweepTimeMultiplier = 1.0 / sweepTimeTotal;
IncrementalSweeper::IncrementalSweeper(Heap* heap, CFRunLoopRef runLoop)
: HeapTimer(heap->globalData(), runLoop)
, m_currentBlockToSweepIndex(0)
- , m_structuresCanBeSwept(false)
+ , m_blocksToSweep(heap->m_blockSnapshot)
{
}
@@ -72,7 +72,6 @@ void IncrementalSweeper::cancelTimer()
IncrementalSweeper::IncrementalSweeper(Heap* heap)
: HeapTimer(heap->globalData())
, m_currentBlockToSweepIndex(0)
- , m_structuresCanBeSwept(false)
{
}
@@ -119,10 +118,6 @@ void IncrementalSweeper::sweepNextBlock()
{
while (m_currentBlockToSweepIndex < m_blocksToSweep.size()) {
MarkedBlock* block = m_blocksToSweep[m_currentBlockToSweepIndex++];
- if (block->onlyContainsStructures())
- m_structuresCanBeSwept = true;
- else
- ASSERT(!m_structuresCanBeSwept);
if (!block->needsSweeping())
continue;
@@ -133,20 +128,16 @@ void IncrementalSweeper::sweepNextBlock()
}
}
-void IncrementalSweeper::startSweeping(const HashSet<MarkedBlock*>& blockSnapshot)
+void IncrementalSweeper::startSweeping(Vector<MarkedBlock*>& blockSnapshot)
{
- m_blocksToSweep.resize(blockSnapshot.size());
- CopyFunctor functor(m_blocksToSweep);
- m_globalData->heap.objectSpace().forEachBlock(functor);
+ m_blocksToSweep = blockSnapshot;
m_currentBlockToSweepIndex = 0;
- m_structuresCanBeSwept = false;
scheduleTimer();
}
void IncrementalSweeper::willFinishSweeping()
{
m_currentBlockToSweepIndex = 0;
- m_structuresCanBeSwept = true;
m_blocksToSweep.clear();
if (m_globalData)
cancelTimer();
@@ -156,7 +147,6 @@ void IncrementalSweeper::willFinishSweeping()
IncrementalSweeper::IncrementalSweeper(JSGlobalData* globalData)
: HeapTimer(globalData)
- , m_structuresCanBeSwept(false)
{
}
@@ -169,14 +159,12 @@ IncrementalSweeper* IncrementalSweeper::create(Heap* heap)
return new IncrementalSweeper(heap->globalData());
}
-void IncrementalSweeper::startSweeping(const HashSet<MarkedBlock*>&)
+void IncrementalSweeper::startSweeping(Vector<MarkedBlock*>&)
{
- m_structuresCanBeSwept = false;
}
void IncrementalSweeper::willFinishSweeping()
{
- m_structuresCanBeSwept = true;
}
void IncrementalSweeper::sweepNextBlock()
@@ -185,9 +173,4 @@ void IncrementalSweeper::sweepNextBlock()
#endif
-bool IncrementalSweeper::structuresCanBeSwept()
-{
- return m_structuresCanBeSwept;
-}
-
} // namespace JSC