Index: Source/core/loader/ImageLoader.cpp |
diff --git a/Source/core/loader/ImageLoader.cpp b/Source/core/loader/ImageLoader.cpp |
index f3f4e3ff57b6f34241bfc4592b3c115084178811..cfa1fd862f635d721a399669e7488eaf8cd6b5d9 100644 |
--- a/Source/core/loader/ImageLoader.cpp |
+++ b/Source/core/loader/ImageLoader.cpp |
@@ -122,11 +122,11 @@ ImageLoader::~ImageLoader() |
ASSERT(m_hasPendingErrorEvent || !errorEventSender().hasPendingEvents(this)); |
if (m_hasPendingErrorEvent) |
errorEventSender().cancelEvent(this); |
+} |
- // If the ImageLoader is being destroyed but it is still protecting its image-loading Element, |
- // remove that protection here. |
- if (m_elementIsProtected) |
- m_element->deref(); |
haraken
2014/06/10 04:15:13
Shall we add an ASSERT like this?
ASSERT(!m_ele
|
+void ImageLoader::trace(Visitor* visitor) |
+{ |
+ visitor->trace(m_element); |
} |
void ImageLoader::setImage(ImageResource* newImage) |
@@ -416,7 +416,7 @@ void ImageLoader::updatedHasPendingEvent() |
if (m_derefElementTimer.isActive()) |
m_derefElementTimer.stop(); |
else |
- m_element->ref(); |
+ m_keepAlive = m_element; |
} else { |
ASSERT(!m_derefElementTimer.isActive()); |
m_derefElementTimer.startOneShot(0, FROM_HERE); |
@@ -425,7 +425,7 @@ void ImageLoader::updatedHasPendingEvent() |
void ImageLoader::timerFired(Timer<ImageLoader>*) |
{ |
- m_element->deref(); |
+ m_keepAlive.clear(); |
} |
void ImageLoader::dispatchPendingEvent(ImageEventSender* eventSender) |