Changeset 161557 in webkit for trunk/Source/JavaScriptCore/heap/MarkStack.cpp
- Timestamp:
- Jan 9, 2014, 9:21:02 AM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/heap/MarkStack.cpp
r161540 r161557 58 58 MarkStackArray::~MarkStackArray() 59 59 { 60 ASSERT(m_numberOfSegments == 1); 61 ASSERT(m_segments.size() == 1); 60 ASSERT(m_numberOfSegments == 1 && m_segments.size() == 1); 62 61 m_blockAllocator.deallocate(MarkStackSegment::destroy(m_segments.removeHead())); 63 m_numberOfSegments--;64 ASSERT(!m_numberOfSegments);65 ASSERT(!m_segments.size());66 }67 68 void MarkStackArray::clear()69 {70 if (!m_segments.head())71 return;72 MarkStackSegment* next;73 for (MarkStackSegment* current = m_segments.head(); current->next(); current = next) {74 next = current->next();75 m_segments.remove(current);76 m_blockAllocator.deallocate(MarkStackSegment::destroy(current));77 }78 m_top = 0;79 m_numberOfSegments = 1;80 #if !ASSERT_DISABLED81 m_segments.head()->m_top = 0;82 #endif83 62 } 84 63 … … 189 168 } 190 169 191 void MarkStackArray::fillVector(Vector<const JSCell*>& vector)192 {193 ASSERT(vector.size() == size());194 195 MarkStackSegment* currentSegment = m_segments.head();196 if (!currentSegment)197 return;198 199 unsigned count = 0;200 for (unsigned i = 0; i < m_top; ++i) {201 ASSERT(currentSegment->data()[i]);202 vector[count++] = currentSegment->data()[i];203 }204 205 currentSegment = currentSegment->next();206 while (currentSegment) {207 for (unsigned i = 0; i < s_segmentCapacity; ++i) {208 ASSERT(currentSegment->data()[i]);209 vector[count++] = currentSegment->data()[i];210 }211 currentSegment = currentSegment->next();212 }213 }214 215 170 } // namespace JSC
Note:
See TracChangeset
for help on using the changeset viewer.