Index: third_party/WebKit/Source/core/loader/ImageLoader.cpp |
diff --git a/third_party/WebKit/Source/core/loader/ImageLoader.cpp b/third_party/WebKit/Source/core/loader/ImageLoader.cpp |
index 94ba386124afa45fe0aa71ff48e95444b5916242..7266759fdd76a27b184e5f16796f7e801dc8a2dc 100644 |
--- a/third_party/WebKit/Source/core/loader/ImageLoader.cpp |
+++ b/third_party/WebKit/Source/core/loader/ImageLoader.cpp |
@@ -142,7 +142,6 @@ private: |
ImageLoader::ImageLoader(Element* element) |
: m_element(element) |
- , m_image(0) |
, m_derefElementTimer(this, &ImageLoader::timerFired) |
, m_hasPendingLoadEvent(false) |
, m_hasPendingErrorEvent(false) |
@@ -180,8 +179,10 @@ void ImageLoader::dispose() |
willRemoveClient(*client); |
#endif |
- if (m_image) |
+ if (m_image) { |
m_image->removeClient(this); |
+ m_image = nullptr; |
+ } |
#if !ENABLE(OILPAN) |
ASSERT(m_hasPendingLoadEvent || !loadEventSender().hasPendingEvents(this)); |
@@ -211,6 +212,7 @@ void ImageLoader::clearWeakMembers(Visitor* visitor) |
DEFINE_TRACE(ImageLoader) |
{ |
+ visitor->trace(m_image); |
visitor->trace(m_element); |
#if ENABLE(OILPAN) |
visitor->template registerWeakMembers<ImageLoader, &ImageLoader::clearWeakMembers>(this); |
@@ -310,7 +312,7 @@ void ImageLoader::doUpdateFromElement(BypassMainWorldBehavior bypassBehavior, Up |
AtomicString imageSourceURL = m_element->imageSourceURL(); |
KURL url = imageSourceToKURL(imageSourceURL); |
- ResourcePtr<ImageResource> newImage = 0; |
+ RefPtrWillBeRawPtr<ImageResource> newImage = nullptr; |
RefPtrWillBeRawPtr<Element> protectElement(m_element.get()); |
if (!url.isNull()) { |
// Unlike raw <img>, we block mixed content inside of <picture> or <img srcset>. |
@@ -360,7 +362,7 @@ void ImageLoader::doUpdateFromElement(BypassMainWorldBehavior bypassBehavior, Up |
noImageResourceToLoad(); |
} |
- ImageResource* oldImage = m_image.get(); |
+ RefPtrWillBeRawPtr<ImageResource> oldImage = m_image.get(); |
if (updateBehavior == UpdateSizeChanged && m_element->layoutObject() && m_element->layoutObject()->isImage() && newImage == oldImage) { |
toLayoutImage(m_element->layoutObject())->intrinsicSizeChanged(); |
} else { |