diff options
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; |