Index: third_party/WebKit/Source/core/fetch/MemoryCache.cpp |
diff --git a/third_party/WebKit/Source/core/fetch/MemoryCache.cpp b/third_party/WebKit/Source/core/fetch/MemoryCache.cpp |
index 80ee6f7f81ef1363ca05b5420a33967b947a20dd..024cbdc1d1091ae30873b344a7916a20475e229f 100644 |
--- a/third_party/WebKit/Source/core/fetch/MemoryCache.cpp |
+++ b/third_party/WebKit/Source/core/fetch/MemoryCache.cpp |
@@ -347,7 +347,7 @@ void MemoryCache::pruneDeadResources(PruneStrategy strategy) |
} |
// Decoded data may reference other resources. Stop iterating if 'previous' somehow got |
// kicked out of cache during destroyDecodedData(). |
- if (previous && !contains(previous->m_resource.get())) |
+ if (!previous || !previous->m_resource || !contains(previous->m_resource.get())) |
break; |
current = previous; |
} |
@@ -372,7 +372,7 @@ void MemoryCache::pruneDeadResources(PruneStrategy strategy) |
if (targetSize && m_deadSize <= targetSize) |
return; |
} |
- if (previous && !contains(previous->m_resource.get())) |
+ if (!previous || !previous->m_resource || !contains(previous->m_resource.get())) |
break; |
current = previous; |
} |
@@ -791,6 +791,15 @@ void MemoryCache::onMemoryDump(WebMemoryDumpLevelOfDetail levelOfDetail, WebProc |
} |
} |
+bool MemoryCache::isInSameLRUListForTest(const Resource* x, const Resource* y) |
+{ |
+ MemoryCacheEntry* ex = getEntryForResource(x); |
+ MemoryCacheEntry* ey = getEntryForResource(y); |
+ ASSERT(ex); |
+ ASSERT(ey); |
+ return lruListFor(ex->m_accessCount, x->size()) == lruListFor(ey->m_accessCount, y->size()); |
+} |
+ |
void MemoryCache::registerLiveResource(Resource& resource) |
{ |
#if ENABLE(OILPAN) |