Changeset 88519 in webkit for trunk/Source/JavaScriptCore/heap/NewSpace.h
- Timestamp:
- Jun 9, 2011, 9:38:23 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/heap/NewSpace.h
r88389 r88519 62 62 SizeClass& sizeClassFor(size_t); 63 63 void* allocate(SizeClass&); 64 void resetAllocator(); 64 65 65 66 void addBlock(SizeClass&, MarkedBlock*); … … 70 71 void setHighWaterMark(size_t); 71 72 72 void resetAllocator(); 73 template<typename Functor> typename Functor::ReturnType forEachBlock(Functor&); // Safe to remove the current item while iterating. 74 template<typename Functor> typename Functor::ReturnType forEachBlock(); 73 75 74 76 private: … … 125 127 } 126 128 129 template <typename Functor> inline typename Functor::ReturnType NewSpace::forEachBlock(Functor& functor) 130 { 131 for (size_t i = 0; i < preciseCount; ++i) { 132 SizeClass& sizeClass = m_preciseSizeClasses[i]; 133 MarkedBlock* next; 134 for (MarkedBlock* block = sizeClass.blockList.head(); block; block = next) { 135 next = block->next(); 136 functor(block); 137 } 138 } 139 140 for (size_t i = 0; i < impreciseCount; ++i) { 141 SizeClass& sizeClass = m_impreciseSizeClasses[i]; 142 MarkedBlock* next; 143 for (MarkedBlock* block = sizeClass.blockList.head(); block; block = next) { 144 next = block->next(); 145 functor(block); 146 } 147 } 148 149 return functor.returnValue(); 150 } 151 152 template <typename Functor> inline typename Functor::ReturnType NewSpace::forEachBlock() 153 { 154 Functor functor; 155 return forEachBlock(functor); 156 } 157 127 158 inline NewSpace::SizeClass::SizeClass() 128 159 : nextBlock(0)
Note:
See TracChangeset
for help on using the changeset viewer.