| 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)
|
|
|