Changeset 179192 in webkit for trunk/Source/JavaScriptCore/heap/CopiedBlock.h
- Timestamp:
- Jan 27, 2015, 10:29:29 AM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/heap/CopiedBlock.h
r177130 r179192 27 27 #define CopiedBlock_h 28 28 29 #include "BlockAllocator.h"30 29 #include "CopyWorkList.h" 31 30 #include "HeapBlock.h" … … 33 32 #include "Options.h" 34 33 #include <wtf/Atomics.h> 34 #include <wtf/TCSpinLock.h> 35 35 36 36 namespace JSC { … … 42 42 friend class CopiedAllocator; 43 43 public: 44 static CopiedBlock* create( DeadBlock*);45 static CopiedBlock* createNoZeroFill( DeadBlock*);44 static CopiedBlock* create(size_t); 45 static CopiedBlock* createNoZeroFill(size_t); 46 46 47 47 void pin(); … … 87 87 88 88 private: 89 CopiedBlock( Region*);89 CopiedBlock(size_t); 90 90 void zeroFillWilderness(); // Can be called at any time to zero-fill to the end of the block. 91 91 … … 95 95 std::unique_ptr<CopyWorkList> m_workList; 96 96 97 size_t m_blockSize; 97 98 size_t m_remaining; 98 99 bool m_isPinned : 1; … … 104 105 }; 105 106 106 inline CopiedBlock* CopiedBlock::createNoZeroFill(DeadBlock* block) 107 { 108 Region* region = block->region(); 109 return new(NotNull, block) CopiedBlock(region); 110 } 111 112 inline CopiedBlock* CopiedBlock::create(DeadBlock* block) 113 { 114 CopiedBlock* newBlock = createNoZeroFill(block); 107 inline CopiedBlock* CopiedBlock::createNoZeroFill(size_t blockSize) 108 { 109 return new(NotNull, fastAlignedMalloc(CopiedBlock::blockSize, blockSize)) CopiedBlock(blockSize); 110 } 111 112 inline CopiedBlock* CopiedBlock::create(size_t blockSize) 113 { 114 CopiedBlock* newBlock = createNoZeroFill(blockSize); 115 115 newBlock->zeroFillWilderness(); 116 116 return newBlock; … … 129 129 } 130 130 131 inline CopiedBlock::CopiedBlock(Region* region) 132 : HeapBlock<CopiedBlock>(region) 131 inline CopiedBlock::CopiedBlock(size_t blockSize) 132 : HeapBlock<CopiedBlock>() 133 , m_blockSize(blockSize) 133 134 , m_remaining(payloadCapacity()) 134 135 , m_isPinned(false) … … 204 205 inline bool CopiedBlock::isOversize() 205 206 { 206 return region()->isCustomSize();207 return m_blockSize != blockSize; 207 208 } 208 209 … … 220 221 inline char* CopiedBlock::payloadEnd() 221 222 { 222 return reinterpret_cast<char*>(this) + region()->blockSize();223 return reinterpret_cast<char*>(this) + m_blockSize; 223 224 } 224 225 … … 265 266 inline size_t CopiedBlock::capacity() 266 267 { 267 return region()->blockSize();268 return m_blockSize; 268 269 } 269 270
Note:
See TracChangeset
for help on using the changeset viewer.