Changeset 35803 in webkit for trunk/JavaScriptCore/wtf/FastMalloc.cpp
- Timestamp:
- Aug 15, 2008, 11:53:44 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/wtf/FastMalloc.cpp
r35691 r35803 1807 1807 #ifdef WTF_CHANGES 1808 1808 template <class Finder, class Reader> 1809 void enumerateFreeObjects(Finder& finder, const Reader& reader )1809 void enumerateFreeObjects(Finder& finder, const Reader& reader, TCMalloc_Central_FreeList* remoteCentralFreeList) 1810 1810 { 1811 1811 for (Span* span = &empty_; span && span != &empty_; span = (span->next ? reader(span->next) : 0)) … … 1813 1813 1814 1814 ASSERT(!nonempty_.objects); 1815 for (Span* span = reader(nonempty_.next); span && span != &nonempty_; span = (span->next ? reader(span->next) : 0)) { 1815 static const ptrdiff_t nonemptyOffset = reinterpret_cast<const char*>(&nonempty_) - reinterpret_cast<const char*>(this); 1816 1817 Span* remoteNonempty = reinterpret_cast<Span*>(reinterpret_cast<char*>(remoteCentralFreeList) + nonemptyOffset); 1818 Span* remoteSpan = nonempty_.next; 1819 1820 for (Span* span = reader(remoteSpan); span && remoteSpan != remoteNonempty; remoteSpan = span->next, span = (span->next ? reader(span->next) : 0)) { 1816 1821 for (void* nextObject = span->objects; nextObject; nextObject = *reader(reinterpret_cast<void**>(nextObject))) 1817 1822 finder.visit(nextObject); … … 3589 3594 } 3590 3595 3591 void findFreeObjects(TCMalloc_Central_FreeListPadded* centralFreeList, size_t numSizes )3596 void findFreeObjects(TCMalloc_Central_FreeListPadded* centralFreeList, size_t numSizes, TCMalloc_Central_FreeListPadded* remoteCentralFreeList) 3592 3597 { 3593 3598 for (unsigned i = 0; i < numSizes; i++) 3594 centralFreeList[i].enumerateFreeObjects(*this, m_reader );3599 centralFreeList[i].enumerateFreeObjects(*this, m_reader, remoteCentralFreeList + i); 3595 3600 } 3596 3601 }; … … 3706 3711 FreeObjectFinder finder(memoryReader); 3707 3712 finder.findFreeObjects(threadHeaps); 3708 finder.findFreeObjects(centralCaches, kNumClasses );3713 finder.findFreeObjects(centralCaches, kNumClasses, mzone->m_centralCaches); 3709 3714 3710 3715 TCMalloc_PageHeap::PageMap* pageMap = &pageHeap->pagemap_;
Note:
See TracChangeset
for help on using the changeset viewer.