Changeset 94522 in webkit for trunk/Source/JavaScriptCore/heap/NewSpace.h
- Timestamp:
- Sep 5, 2011, 3:43:34 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/heap/NewSpace.h
r94448 r94522 47 47 public: 48 48 static const size_t maxCellSize = 1024; 49 static const size_t PropertyStorageNurserySize = 1024 * 1024 * 4;50 49 51 50 struct SizeClass { … … 65 64 SizeClass& sizeClassFor(size_t); 66 65 void* allocate(SizeClass&); 67 inline void* allocatePropertyStorage(size_t);68 inline bool inPropertyStorageNursery(void* ptr);69 inline void resetPropertyStorageNursery();70 71 66 void resetAllocator(); 72 67 … … 97 92 SizeClass m_preciseSizeClasses[preciseCount]; 98 93 SizeClass m_impreciseSizeClasses[impreciseCount]; 99 char* m_propertyStorageNursery;100 char* m_propertyStorageAllocationPoint;101 94 size_t m_waterMark; 102 95 size_t m_highWaterMark; … … 168 161 } 169 162 170 inline void NewSpace::resetPropertyStorageNursery()171 {172 m_propertyStorageAllocationPoint = m_propertyStorageNursery;173 }174 175 inline void* NewSpace::allocatePropertyStorage(size_t size)176 {177 char* result = m_propertyStorageAllocationPoint;178 if (size > PropertyStorageNurserySize)179 CRASH();180 m_propertyStorageAllocationPoint += size;181 if (static_cast<size_t>(m_propertyStorageAllocationPoint - m_propertyStorageNursery) > PropertyStorageNurserySize) {182 m_propertyStorageAllocationPoint = result;183 return 0;184 }185 return result;186 }187 188 inline bool NewSpace::inPropertyStorageNursery(void* ptr)189 {190 char* addr = static_cast<char*>(ptr);191 return static_cast<size_t>(addr - m_propertyStorageNursery) < PropertyStorageNurserySize;192 }193 194 163 template <typename Functor> inline typename Functor::ReturnType NewSpace::forEachBlock(Functor& functor) 195 164 {
Note:
See TracChangeset
for help on using the changeset viewer.