Index: Source/core/fetch/Resource.cpp |
diff --git a/Source/core/fetch/Resource.cpp b/Source/core/fetch/Resource.cpp |
index 3482abeda4c631e5988c0760a13a7c3036e428fb..1987b14e1cd09756f642ee12a8bdc1db9adc4bad 100644 |
--- a/Source/core/fetch/Resource.cpp |
+++ b/Source/core/fetch/Resource.cpp |
@@ -96,11 +96,12 @@ DEFINE_DEBUG_ONLY_GLOBAL(RefCountedLeakCounter, cachedResourceLeakCounter, ("Res |
class Resource::CacheHandler : public CachedMetadataHandler { |
public: |
- static PassOwnPtr<CacheHandler> create(Resource* resource) |
+ static PassOwnPtrWillBeRawPtr<CacheHandler> create(Resource* resource) |
{ |
- return adoptPtr(new CacheHandler(resource)); |
+ return adoptPtrWillBeNoop(new CacheHandler(resource)); |
} |
~CacheHandler() override { } |
+ DECLARE_VIRTUAL_TRACE(); |
void setCachedMetadata(unsigned, const char*, size_t, CacheType) override; |
void clearCachedMetadata(CacheType) override; |
CachedMetadata* cachedMetadata(unsigned) const override; |
@@ -108,7 +109,7 @@ public: |
private: |
explicit CacheHandler(Resource*); |
- Resource* m_resource; |
+ RawPtrWillBeMember<Resource> m_resource; |
}; |
Resource::CacheHandler::CacheHandler(Resource* resource) |
@@ -116,6 +117,14 @@ Resource::CacheHandler::CacheHandler(Resource* resource) |
{ |
} |
+DEFINE_TRACE(Resource::CacheHandler) |
+{ |
+#if ENABLE(OILPAN) |
+ visitor->trace(m_resource); |
+#endif |
+ CachedMetadataHandler::trace(visitor); |
+} |
+ |
void Resource::CacheHandler::setCachedMetadata(unsigned dataTypeID, const char* data, size_t size, CacheType type) |
{ |
m_resource->setCachedMetadata(dataTypeID, data, size, type); |
@@ -208,6 +217,9 @@ DEFINE_TRACE(Resource) |
visitor->trace(m_loader); |
visitor->trace(m_resourceToRevalidate); |
visitor->trace(m_proxyResource); |
+#if ENABLE(OILPAN) |
+ visitor->trace(m_cacheHandler); |
+#endif |
} |
void Resource::load(ResourceFetcher* fetcher, const ResourceLoaderOptions& options) |