Title: [118300] branches/chromium/1132/Source/WebCore/loader/cache
- Revision
- 118300
- Author
- [email protected]
- Date
- 2012-05-23 18:50:38 -0700 (Wed, 23 May 2012)
Log Message
Merge 117376
BUG=128497
Review URL: https://chromiumcodereview.appspot.com/10441007
Modified Paths
Diff
Modified: branches/chromium/1132/Source/WebCore/loader/cache/CachedImage.cpp (118299 => 118300)
--- branches/chromium/1132/Source/WebCore/loader/cache/CachedImage.cpp 2012-05-24 01:47:38 UTC (rev 118299)
+++ branches/chromium/1132/Source/WebCore/loader/cache/CachedImage.cpp 2012-05-24 01:50:38 UTC (rev 118300)
@@ -75,6 +75,7 @@
CachedImage::~CachedImage()
{
+ clearImage();
}
void CachedImage::decodedDataDeletionTimerFired(Timer<CachedImage>*)
@@ -302,7 +303,7 @@
#if ENABLE(SVG)
m_svgImageCache.clear();
#endif
- m_image = 0;
+ clearImage();
setEncodedSize(0);
}
@@ -328,6 +329,15 @@
m_image = BitmapImage::create(this);
}
+inline void CachedImage::clearImage()
+{
+ // If our Image has an observer, it's always us so we need to clear the back pointer
+ // before dropping our reference.
+ if (m_image)
+ m_image->setImageObserver(0);
+ m_image.clear();
+}
+
size_t CachedImage::maximumDecodedImageSize()
{
if (!m_loader || m_loader->reachedTerminalState())
Modified: branches/chromium/1132/Source/WebCore/loader/cache/CachedImage.h (118299 => 118300)
--- branches/chromium/1132/Source/WebCore/loader/cache/CachedImage.h 2012-05-24 01:47:38 UTC (rev 118299)
+++ branches/chromium/1132/Source/WebCore/loader/cache/CachedImage.h 2012-05-24 01:50:38 UTC (rev 118300)
@@ -98,6 +98,7 @@
void clear();
void createImage();
+ void clearImage();
size_t maximumDecodedImageSize();
// If not null, changeRect is the changed part of the image.
void notifyObservers(const IntRect* changeRect = 0);
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes