| Index: Source/core/fetch/Resource.cpp
|
| diff --git a/Source/core/fetch/Resource.cpp b/Source/core/fetch/Resource.cpp
|
| index 7e6112b5884ea82d26e084c7d9b5785d95194997..9dbab36313ef9583d14b0a72c32ab1bc17fe41ab 100644
|
| --- a/Source/core/fetch/Resource.cpp
|
| +++ b/Source/core/fetch/Resource.cpp
|
| @@ -116,13 +116,14 @@ Resource::Resource(const ResourceRequest& request, Type type)
|
| #ifdef ENABLE_RESOURCE_IS_DELETED_CHECK
|
| , m_deleted(false)
|
| #endif
|
| - , m_resourceToRevalidate(0)
|
| - , m_proxyResource(0)
|
| + , m_resourceToRevalidate(nullptr)
|
| + , m_proxyResource(nullptr)
|
| {
|
| ASSERT(m_type == unsigned(type)); // m_type is a bitfield, so this tests careless updates of the enum.
|
| #ifndef NDEBUG
|
| cachedResourceLeakCounter.increment();
|
| #endif
|
| + memoryCache()->registerLiveResource(*this);
|
|
|
| if (!m_resourceRequest.url().hasFragmentIdentifier())
|
| return;
|
| @@ -154,6 +155,12 @@ void Resource::dispose()
|
| {
|
| }
|
|
|
| +void Resource::trace(Visitor* visitor)
|
| +{
|
| + visitor->trace(m_resourceToRevalidate);
|
| + visitor->trace(m_proxyResource);
|
| +}
|
| +
|
| void Resource::failBeforeStarting()
|
| {
|
| WTF_LOG(ResourceLoading, "Cannot start loading '%s'", url().string().latin1().data());
|
| @@ -556,7 +563,10 @@ bool Resource::deleteIfPossible()
|
| if (canDelete() && !memoryCache()->contains(this)) {
|
| InspectorInstrumentation::willDestroyResource(this);
|
| dispose();
|
| + memoryCache()->unregisterLiveResource(*this);
|
| +#if !ENABLE(OILPAN)
|
| delete this;
|
| +#endif
|
| return true;
|
| }
|
| return false;
|
| @@ -654,11 +664,11 @@ void Resource::clearResourceToRevalidate()
|
|
|
| // A resource may start revalidation before this method has been called, so check that this resource is still the proxy resource before clearing it out.
|
| if (m_resourceToRevalidate->m_proxyResource == this) {
|
| - m_resourceToRevalidate->m_proxyResource = 0;
|
| + m_resourceToRevalidate->m_proxyResource = nullptr;
|
| m_resourceToRevalidate->deleteIfPossible();
|
| }
|
| m_handlesToRevalidate.clear();
|
| - m_resourceToRevalidate = 0;
|
| + m_resourceToRevalidate = nullptr;
|
| deleteIfPossible();
|
| }
|
|
|
| @@ -668,7 +678,7 @@ void Resource::switchClientsToRevalidatedResource()
|
| ASSERT(memoryCache()->contains(m_resourceToRevalidate));
|
| ASSERT(!memoryCache()->contains(this));
|
|
|
| - WTF_LOG(ResourceLoading, "Resource %p switchClientsToRevalidatedResource %p", this, m_resourceToRevalidate);
|
| + WTF_LOG(ResourceLoading, "Resource %p switchClientsToRevalidatedResource %p", this, m_resourceToRevalidate.get());
|
|
|
| m_resourceToRevalidate->m_identifier = m_identifier;
|
|
|
|
|