diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2012-05-25 15:09:11 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2012-05-25 15:09:11 +0200 |
commit | a89b2ebb8e192c5e8cea21079bda2ee2c0c7dddd (patch) | |
tree | b7abd9f49ae1d4d2e426a5883bfccd42b8e2ee12 /Source/JavaScriptCore/heap/CopiedSpaceInlineMethods.h | |
parent | 8d473cf9743f1d30a16a27114e93bd5af5648d23 (diff) | |
download | qtwebkit-a89b2ebb8e192c5e8cea21079bda2ee2c0c7dddd.tar.gz |
Imported WebKit commit eb5c1b8fe4d4b1b90b5137433fc58a91da0e6878 (http://svn.webkit.org/repository/webkit/trunk@118516)
Diffstat (limited to 'Source/JavaScriptCore/heap/CopiedSpaceInlineMethods.h')
-rw-r--r-- | Source/JavaScriptCore/heap/CopiedSpaceInlineMethods.h | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/Source/JavaScriptCore/heap/CopiedSpaceInlineMethods.h b/Source/JavaScriptCore/heap/CopiedSpaceInlineMethods.h index a8e45658b..c97762598 100644 --- a/Source/JavaScriptCore/heap/CopiedSpaceInlineMethods.h +++ b/Source/JavaScriptCore/heap/CopiedSpaceInlineMethods.h @@ -35,11 +35,21 @@ namespace JSC { +inline bool CopiedSpace::contains(CopiedBlock* block) +{ + return !m_blockFilter.ruleOut(reinterpret_cast<Bits>(block)) && m_blockSet.contains(block); +} + inline bool CopiedSpace::contains(void* ptr, CopiedBlock*& result) { CopiedBlock* block = blockFor(ptr); + if (contains(block)) { + result = block; + return true; + } + block = oversizeBlockFor(ptr); result = block; - return !m_toSpaceFilter.ruleOut(reinterpret_cast<Bits>(block)) && m_toSpaceSet.contains(block); + return contains(block); } inline void CopiedSpace::pin(CopiedBlock* block) @@ -53,7 +63,7 @@ inline void CopiedSpace::startedCopying() m_fromSpace = m_toSpace; m_toSpace = temp; - m_toSpaceFilter.reset(); + m_blockFilter.reset(); m_allocator.startedCopying(); ASSERT(!m_inCopyingPhase); @@ -63,7 +73,7 @@ inline void CopiedSpace::startedCopying() inline void CopiedSpace::recycleBlock(CopiedBlock* block) { - m_heap->blockAllocator().deallocate(block); + m_heap->blockAllocator().deallocate(CopiedBlock::destroy(block)); { MutexLocker locker(m_loanedBlocksLock); @@ -98,8 +108,8 @@ inline CheckedBoolean CopiedSpace::addNewBlock() return false; m_toSpace->push(block); - m_toSpaceFilter.add(reinterpret_cast<Bits>(block)); - m_toSpaceSet.add(block); + m_blockFilter.add(reinterpret_cast<Bits>(block)); + m_blockSet.add(block); m_allocator.resetCurrentBlock(block); return true; } |