diff options
Diffstat (limited to 'Source/WebCore/css/CSSImageSetValue.cpp')
-rw-r--r-- | Source/WebCore/css/CSSImageSetValue.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/Source/WebCore/css/CSSImageSetValue.cpp b/Source/WebCore/css/CSSImageSetValue.cpp index cbd8a4333..96cacf163 100644 --- a/Source/WebCore/css/CSSImageSetValue.cpp +++ b/Source/WebCore/css/CSSImageSetValue.cpp @@ -49,8 +49,16 @@ CSSImageSetValue::CSSImageSetValue() { } +inline void CSSImageSetValue::detachPendingImage() +{ + if (m_imageSet && m_imageSet->isPendingImage()) + static_cast<StylePendingImage&>(*m_imageSet).detachFromCSSValue(); +} + CSSImageSetValue::~CSSImageSetValue() { + detachPendingImage(); + if (m_imageSet && m_imageSet->isCachedImageSet()) static_cast<StyleCachedImageSet*>(m_imageSet.get())->clearImageSetValue(); } @@ -114,6 +122,7 @@ StyleCachedImageSet* CSSImageSetValue::cachedImageSet(CachedResourceLoader* load CachedResourceRequest request(ResourceRequest(document->completeURL(image.imageURL))); request.setInitiator(cachedResourceRequestInitiators().css); if (CachedResourceHandle<CachedImage> cachedImage = loader->requestImage(request)) { + detachPendingImage(); m_imageSet = StyleCachedImageSet::create(cachedImage.get(), image.scaleFactor, this); m_accessedBestFitImage = true; } |