diff options
author | Kristian Monsen <kristianm@google.com> | 2010-09-08 12:18:00 +0100 |
---|---|---|
committer | Kristian Monsen <kristianm@google.com> | 2010-09-11 12:08:58 +0100 |
commit | 5ddde30071f639962dd557c453f2ad01f8f0fd00 (patch) | |
tree | 775803c4ab35af50aa5f5472cd1fb95fe9d5152d /WebCore/css/CSSImageValue.cpp | |
parent | 3e63d9b33b753ca86d0765d1b3d711114ba9e34f (diff) | |
download | external_webkit-5ddde30071f639962dd557c453f2ad01f8f0fd00.zip external_webkit-5ddde30071f639962dd557c453f2ad01f8f0fd00.tar.gz external_webkit-5ddde30071f639962dd557c453f2ad01f8f0fd00.tar.bz2 |
Merge WebKit at r66666 : Initial merge by git.
Change-Id: I57dedeb49859adc9c539e760f0e749768c66626f
Diffstat (limited to 'WebCore/css/CSSImageValue.cpp')
-rw-r--r-- | WebCore/css/CSSImageValue.cpp | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/WebCore/css/CSSImageValue.cpp b/WebCore/css/CSSImageValue.cpp index 96a8dec..dc2d700 100644 --- a/WebCore/css/CSSImageValue.cpp +++ b/WebCore/css/CSSImageValue.cpp @@ -26,6 +26,7 @@ #include "CachedImage.h" #include "DocLoader.h" #include "StyleCachedImage.h" +#include "StylePendingImage.h" namespace WebCore { @@ -43,8 +44,19 @@ CSSImageValue::CSSImageValue() CSSImageValue::~CSSImageValue() { - if (m_image) - m_image->cachedImage()->removeClient(this); + if (m_image && m_image->isCachedImage()) + static_cast<StyleCachedImage*>(m_image.get())->cachedImage()->removeClient(this); +} + +StyleImage* CSSImageValue::cachedOrPendingImage() +{ + if (getIdent() == CSSValueNone) + return 0; + + if (!m_image) + m_image = StylePendingImage::create(this); + + return m_image.get(); } StyleCachedImage* CSSImageValue::cachedImage(DocLoader* loader) @@ -71,20 +83,20 @@ StyleCachedImage* CSSImageValue::cachedImage(DocLoader* loader, const String& ur } } - return m_image.get(); + return m_image->isCachedImage() ? static_cast<StyleCachedImage*>(m_image.get()) : 0; } String CSSImageValue::cachedImageURL() { - if (!m_image) + if (!m_image || !m_image->isCachedImage()) return String(); - return m_image->cachedImage()->url(); + return static_cast<StyleCachedImage*>(m_image.get())->cachedImage()->url(); } void CSSImageValue::clearCachedImage() { - if (m_image) - m_image->cachedImage()->removeClient(this); + if (m_image && m_image->isCachedImage()) + static_cast<StyleCachedImage*>(m_image.get())->cachedImage()->removeClient(this); m_image = 0; m_accessedImage = false; } |