summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore/heap/MarkStack.cpp
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@nokia.com>2012-02-24 16:36:50 +0100
committerSimon Hausmann <simon.hausmann@nokia.com>2012-02-24 16:36:50 +0100
commitad0d549d4cc13433f77c1ac8f0ab379c83d93f28 (patch)
treeb34b0daceb7c8e7fdde4b4ec43650ab7caadb0a9 /Source/JavaScriptCore/heap/MarkStack.cpp
parent03e12282df9aa1e1fb05a8b90f1cfc2e08764cec (diff)
downloadqtwebkit-ad0d549d4cc13433f77c1ac8f0ab379c83d93f28.tar.gz
Imported WebKit commit bb52bf3c0119e8a128cd93afe5572413a8617de9 (http://svn.webkit.org/repository/webkit/trunk@108790)
Diffstat (limited to 'Source/JavaScriptCore/heap/MarkStack.cpp')
-rw-r--r--Source/JavaScriptCore/heap/MarkStack.cpp33
1 files changed, 16 insertions, 17 deletions
diff --git a/Source/JavaScriptCore/heap/MarkStack.cpp b/Source/JavaScriptCore/heap/MarkStack.cpp
index 9a3092396..129a7ab67 100644
--- a/Source/JavaScriptCore/heap/MarkStack.cpp
+++ b/Source/JavaScriptCore/heap/MarkStack.cpp
@@ -26,8 +26,8 @@
#include "config.h"
#include "MarkStack.h"
-#include "BumpSpace.h"
-#include "BumpSpaceInlineMethods.h"
+#include "CopiedSpace.h"
+#include "CopiedSpaceInlineMethods.h"
#include "ConservativeRoots.h"
#include "Heap.h"
#include "Options.h"
@@ -226,16 +226,15 @@ void MarkStackThreadSharedData::markingThreadMain()
slotVisitor.drainFromShared(SlotVisitor::SlaveDrain);
}
-void* MarkStackThreadSharedData::markingThreadStartFunc(void* shared)
+void MarkStackThreadSharedData::markingThreadStartFunc(void* shared)
{
static_cast<MarkStackThreadSharedData*>(shared)->markingThreadMain();
- return 0;
}
#endif
MarkStackThreadSharedData::MarkStackThreadSharedData(JSGlobalData* globalData)
: m_globalData(globalData)
- , m_bumpSpace(&globalData->heap.m_storageSpace)
+ , m_copiedSpace(&globalData->heap.m_storageSpace)
, m_sharedMarkStack(m_segmentAllocator)
, m_numberOfActiveParallelMarkers(0)
, m_parallelMarkersShouldExit(false)
@@ -258,7 +257,7 @@ MarkStackThreadSharedData::~MarkStackThreadSharedData()
m_markingCondition.broadcast();
}
for (unsigned i = 0; i < m_markingThreads.size(); ++i)
- waitForThreadCompletion(m_markingThreads[i], 0);
+ waitForThreadCompletion(m_markingThreads[i]);
#endif
}
@@ -304,7 +303,7 @@ ALWAYS_INLINE static void visitChildren(SlotVisitor& visitor, const JSCell* cell
#endif
ASSERT(Heap::isMarked(cell));
-
+
if (isJSString(cell)) {
JSString::visitChildren(const_cast<JSCell*>(cell), visitor);
return;
@@ -402,7 +401,7 @@ void SlotVisitor::drainFromShared(SharedDrainMode sharedDrainMode)
while (true) {
// Did we reach termination?
if (!m_shared.m_numberOfActiveParallelMarkers && m_shared.m_sharedMarkStack.isEmpty()) {
- // Let any sleeping slaves know it's time for them to give their private BumpBlocks back
+ // Let any sleeping slaves know it's time for them to give their private CopiedBlocks back
m_shared.m_markingCondition.broadcast();
return;
}
@@ -459,32 +458,32 @@ void MarkStack::mergeOpaqueRoots()
void SlotVisitor::startCopying()
{
ASSERT(!m_copyBlock);
- if (!m_shared.m_bumpSpace->borrowBlock(&m_copyBlock))
+ if (!m_shared.m_copiedSpace->borrowBlock(&m_copyBlock))
CRASH();
}
void* SlotVisitor::allocateNewSpace(void* ptr, size_t bytes)
{
- if (BumpSpace::isOversize(bytes)) {
- m_shared.m_bumpSpace->pin(BumpSpace::oversizeBlockFor(ptr));
+ if (CopiedSpace::isOversize(bytes)) {
+ m_shared.m_copiedSpace->pin(CopiedSpace::oversizeBlockFor(ptr));
return 0;
}
- if (m_shared.m_bumpSpace->isPinned(ptr))
+ if (m_shared.m_copiedSpace->isPinned(ptr))
return 0;
// The only time it's possible to have a null copy block is if we have just started copying.
if (!m_copyBlock)
startCopying();
- if (!BumpSpace::fitsInBlock(m_copyBlock, bytes)) {
+ if (!CopiedSpace::fitsInBlock(m_copyBlock, bytes)) {
// We don't need to lock across these two calls because the master thread won't
// call doneCopying() because this thread is considered active.
- m_shared.m_bumpSpace->doneFillingBlock(m_copyBlock);
- if (!m_shared.m_bumpSpace->borrowBlock(&m_copyBlock))
+ m_shared.m_copiedSpace->doneFillingBlock(m_copyBlock);
+ if (!m_shared.m_copiedSpace->borrowBlock(&m_copyBlock))
CRASH();
}
- return BumpSpace::allocateFromBlock(m_copyBlock, bytes);
+ return CopiedSpace::allocateFromBlock(m_copyBlock, bytes);
}
void SlotVisitor::copy(void** ptr, size_t bytes)
@@ -524,7 +523,7 @@ void SlotVisitor::doneCopying()
if (!m_copyBlock)
return;
- m_shared.m_bumpSpace->doneFillingBlock(m_copyBlock);
+ m_shared.m_copiedSpace->doneFillingBlock(m_copyBlock);
m_copyBlock = 0;
}