diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2012-06-20 13:01:08 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2012-06-20 13:01:08 +0200 |
commit | 49233e234e5c787396cadb2cea33b31ae0cd65c1 (patch) | |
tree | 5410cb9a8fd53168bb60d62c54b654d86f03c38d /Source/JavaScriptCore/heap/CopiedSpace.h | |
parent | b211c645d8ab690f713515dfdc84d80b11c27d2c (diff) | |
download | qtwebkit-49233e234e5c787396cadb2cea33b31ae0cd65c1.tar.gz |
Imported WebKit commit 3a8c29f35d00659d2ce7a0ccdfa8304f14e82327 (http://svn.webkit.org/repository/webkit/trunk@120813)
New snapshot with Windows build fixes
Diffstat (limited to 'Source/JavaScriptCore/heap/CopiedSpace.h')
-rw-r--r-- | Source/JavaScriptCore/heap/CopiedSpace.h | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/Source/JavaScriptCore/heap/CopiedSpace.h b/Source/JavaScriptCore/heap/CopiedSpace.h index 27011781d..530e989da 100644 --- a/Source/JavaScriptCore/heap/CopiedSpace.h +++ b/Source/JavaScriptCore/heap/CopiedSpace.h @@ -37,6 +37,7 @@ #include <wtf/PageAllocationAligned.h> #include <wtf/PageBlock.h> #include <wtf/StdLibExtras.h> +#include <wtf/TCSpinLock.h> #include <wtf/ThreadingPrimitives.h> namespace JSC { @@ -76,22 +77,20 @@ public: static CopiedBlock* blockFor(void*); private: - CheckedBoolean tryAllocateSlowCase(size_t, void**); - CheckedBoolean addNewBlock(); - CheckedBoolean allocateNewBlock(CopiedBlock**); - static void* allocateFromBlock(CopiedBlock*, size_t); + static bool isOversize(size_t); + static bool fitsInBlock(CopiedBlock*, size_t); + static CopiedBlock* oversizeBlockFor(void* ptr); + + CheckedBoolean tryAllocateSlowCase(size_t, void**); CheckedBoolean tryAllocateOversize(size_t, void**); CheckedBoolean tryReallocateOversize(void**, size_t, size_t); - static bool isOversize(size_t); - - CheckedBoolean borrowBlock(CopiedBlock**); - CheckedBoolean getFreshBlock(AllocationEffort, CopiedBlock**); + void allocateBlock(); + CopiedBlock* allocateBlockForCopyingPhase(); + void doneFillingBlock(CopiedBlock*); void recycleBlock(CopiedBlock*); - static bool fitsInBlock(CopiedBlock*, size_t); - static CopiedBlock* oversizeBlockFor(void* ptr); Heap* m_heap; @@ -100,7 +99,7 @@ private: TinyBloomFilter m_blockFilter; HashSet<CopiedBlock*> m_blockSet; - Mutex m_toSpaceLock; + SpinLock m_toSpaceLock; DoublyLinkedList<HeapBlock>* m_toSpace; DoublyLinkedList<HeapBlock>* m_fromSpace; |