| Index: Source/core/loader/cache/CachedResource.cpp
|
| diff --git a/Source/core/loader/cache/CachedResource.cpp b/Source/core/loader/cache/CachedResource.cpp
|
| index e41d4dbf232112e3219cef1f041ca96e2fdef439..854ae6f142304912ae323c13d4155890933e082e 100644
|
| --- a/Source/core/loader/cache/CachedResource.cpp
|
| +++ b/Source/core/loader/cache/CachedResource.cpp
|
| @@ -447,6 +447,8 @@ void CachedResource::removeClient(CachedResourceClient* client)
|
|
|
| void CachedResource::allClientsRemoved()
|
| {
|
| + if (!m_loader)
|
| + return;
|
| if (m_type == MainResource || m_type == RawResource)
|
| cancelTimerFired(&m_cancelTimer);
|
| else if (!m_cancelTimer.isActive())
|
| @@ -459,6 +461,8 @@ void CachedResource::cancelTimerFired(Timer<CachedResource>* timer)
|
| if (hasClients() || !m_loader)
|
| return;
|
| m_loader->cancelIfNotFinishing();
|
| + if (m_status != Cached)
|
| + memoryCache()->remove(this);
|
| }
|
|
|
| void CachedResource::destroyDecodedDataIfNeeded()
|
|
|