diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2012-02-24 16:36:50 +0100 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2012-02-24 16:36:50 +0100 |
commit | ad0d549d4cc13433f77c1ac8f0ab379c83d93f28 (patch) | |
tree | b34b0daceb7c8e7fdde4b4ec43650ab7caadb0a9 /Source/JavaScriptCore/heap/MarkStack.cpp | |
parent | 03e12282df9aa1e1fb05a8b90f1cfc2e08764cec (diff) | |
download | qtwebkit-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.cpp | 33 |
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; } |