Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(464)

Unified Diff: third_party/WebKit/Source/platform/heap/Heap.cpp

Issue 2684633004: Remove orphaned pages from Oilpan (Closed)
Patch Set: temp Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/platform/heap/Heap.cpp
diff --git a/third_party/WebKit/Source/platform/heap/Heap.cpp b/third_party/WebKit/Source/platform/heap/Heap.cpp
index 6de39b9922ce99032c05b76755204ced200a478f..cabafe68e27aec743572631f6ee2a2ee5decf256 100644
--- a/third_party/WebKit/Source/platform/heap/Heap.cpp
+++ b/third_party/WebKit/Source/platform/heap/Heap.cpp
@@ -206,7 +206,6 @@ ThreadHeap::ThreadHeap()
m_heapDoesNotContainCache(WTF::wrapUnique(new HeapDoesNotContainCache)),
m_safePointBarrier(WTF::makeUnique<SafePointBarrier>()),
m_freePagePool(WTF::wrapUnique(new FreePagePool)),
- m_orphanedPagePool(WTF::wrapUnique(new OrphanedPagePool)),
m_markingStack(CallbackStack::create()),
m_postMarkingCallbackStack(CallbackStack::create()),
m_globalWeakCallbackStack(CallbackStack::create()),
@@ -299,7 +298,6 @@ Address ThreadHeap::checkAndMarkPointer(Visitor* visitor, Address address) {
if (BasePage* page = lookupPageForAddress(address)) {
ASSERT(page->contains(address));
- ASSERT(!page->orphaned());
ASSERT(!m_heapDoesNotContainCache->lookup(address));
DCHECK(&visitor->heap() == &page->arena()->getThreadState()->heap());
page->checkAndMarkPointer(visitor, address);
@@ -327,7 +325,6 @@ Address ThreadHeap::checkAndMarkPointer(
if (BasePage* page = lookupPageForAddress(address)) {
DCHECK(page->contains(address));
- DCHECK(!page->orphaned());
DCHECK(!m_heapDoesNotContainCache->lookup(address));
DCHECK(&visitor->heap() == &page->arena()->getThreadState()->heap());
page->checkAndMarkPointer(visitor, address, callback);
@@ -342,8 +339,6 @@ Address ThreadHeap::checkAndMarkPointer(
void ThreadHeap::pushTraceCallback(void* object, TraceCallback callback) {
ASSERT(ThreadState::current()->isInGC());
- // Trace should never reach an orphaned page.
- ASSERT(!getOrphanedPagePool()->contains(object));
CallbackStack::Item* slot = m_markingStack->allocateEntry();
*slot = CallbackStack::Item(object, callback);
}
@@ -359,8 +354,6 @@ bool ThreadHeap::popAndInvokeTraceCallback(Visitor* visitor) {
void ThreadHeap::pushPostMarkingCallback(void* object, TraceCallback callback) {
ASSERT(ThreadState::current()->isInGC());
- // Trace should never reach an orphaned page.
- ASSERT(!getOrphanedPagePool()->contains(object));
CallbackStack::Item* slot = m_postMarkingCallbackStack->allocateEntry();
*slot = CallbackStack::Item(object, callback);
}
@@ -376,8 +369,6 @@ bool ThreadHeap::popAndInvokePostMarkingCallback(Visitor* visitor) {
void ThreadHeap::pushGlobalWeakCallback(void** cell, WeakCallback callback) {
ASSERT(ThreadState::current()->isInGC());
- // Trace should never reach an orphaned page.
- ASSERT(!getOrphanedPagePool()->contains(cell));
CallbackStack::Item* slot = m_globalWeakCallbackStack->allocateEntry();
*slot = CallbackStack::Item(cell, callback);
}
@@ -387,8 +378,6 @@ void ThreadHeap::pushThreadLocalWeakCallback(void* closure,
WeakCallback callback) {
ASSERT(ThreadState::current()->isInGC());
- // Trace should never reach an orphaned page.
- ASSERT(!getOrphanedPagePool()->contains(object));
ThreadState* state = pageFromObject(object)->arena()->getThreadState();
state->pushThreadLocalWeakCallback(closure, callback);
}
@@ -406,8 +395,6 @@ void ThreadHeap::registerWeakTable(void* table,
EphemeronCallback iterationDoneCallback) {
ASSERT(ThreadState::current()->isInGC());
- // Trace should never reach an orphaned page.
- ASSERT(!getOrphanedPagePool()->contains(table));
CallbackStack::Item* slot = m_ephemeronStack->allocateEntry();
*slot = CallbackStack::Item(table, iterationCallback);
@@ -662,8 +649,7 @@ void ThreadHeap::leaveSafePoint(ThreadState* threadState,
BasePage* ThreadHeap::lookupPageForAddress(Address address) {
ASSERT(ThreadState::current()->isInGC());
if (PageMemoryRegion* region = m_regionTree->lookup(address)) {
- BasePage* page = region->pageFromAddress(address);
- return page && !page->orphaned() ? page : nullptr;
+ return region->pageFromAddress(address);
}
return nullptr;
}

Powered by Google App Engine
This is Rietveld 408576698