Changeset 95439 in webkit for trunk/Source/JavaScriptCore/heap/NewSpace.h
- Timestamp:
- Sep 19, 2011, 10:41:51 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/heap/NewSpace.h
r94814 r95439 47 47 public: 48 48 static const size_t maxCellSize = 1024; 49 static const size_t PropertyStorageNurserySize = 4 * MB;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 66 71 67 void resetAllocator(); … … 97 93 SizeClass m_preciseSizeClasses[preciseCount]; 98 94 SizeClass m_impreciseSizeClasses[impreciseCount]; 99 char* m_propertyStorageNursery;100 char* m_propertyStorageAllocationPoint;101 95 size_t m_waterMark; 102 96 size_t m_highWaterMark; … … 167 161 return firstFreeCell; 168 162 } 169 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 163 194 164 template <typename Functor> inline typename Functor::ReturnType NewSpace::forEachBlock(Functor& functor)
Note:
See TracChangeset
for help on using the changeset viewer.