Changeset 136558 in webkit
- Timestamp:
- Dec 4, 2012, 1:29:22 PM (13 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r136557 r136558 1 2012-12-04 Abhishek Arya <inferno@chromium.org> 2 3 Crash in CachedResource::checkNotify due to -webkit-crossfade. 4 https://bugs.webkit.org/show_bug.cgi?id=98068 5 6 Reviewed by Nate Chapin. 7 8 * fast/images/crossfade-client-not-removed-crash-expected.txt: Added. 9 * fast/images/crossfade-client-not-removed-crash.html: Added. 10 1 11 2012-12-04 Roger Fong <roger_fong@apple.com> 2 12 -
trunk/Source/WebCore/ChangeLog
r136554 r136558 1 2012-12-04 Abhishek Arya <inferno@chromium.org> 2 3 Crash in CachedResource::checkNotify due to -webkit-crossfade. 4 https://bugs.webkit.org/show_bug.cgi?id=98068 5 6 Reviewed by Nate Chapin. 7 8 Make sure to not re-add the same client again for |m_cachedFromImage| 9 and |m_cachedToImage|. This would otherwise cause the CSSCrossfadeValue 10 client to not get removed from its cached image resource (when it is 11 going away). 12 13 Test: fast/images/crossfade-client-not-removed-crash.html 14 15 * css/CSSCrossfadeValue.cpp: 16 (WebCore::CSSCrossfadeValue::loadSubimages): 17 1 18 2012-12-04 Julien Chaffraix <jchaffraix@webkit.org> 2 19 -
trunk/Source/WebCore/css/CSSCrossfadeValue.cpp
r135629 r136558 147 147 void CSSCrossfadeValue::loadSubimages(CachedResourceLoader* cachedResourceLoader) 148 148 { 149 CachedResourceHandle<CachedImage> oldCachedFromImage = m_cachedFromImage; 150 CachedResourceHandle<CachedImage> oldCachedToImage = m_cachedToImage; 151 149 152 m_cachedFromImage = cachedImageForCSSValue(m_fromValue.get(), cachedResourceLoader); 150 153 m_cachedToImage = cachedImageForCSSValue(m_toValue.get(), cachedResourceLoader); 151 154 152 if (m_cachedFromImage) 153 m_cachedFromImage->addClient(&m_crossfadeSubimageObserver); 154 if (m_cachedToImage) 155 m_cachedToImage->addClient(&m_crossfadeSubimageObserver); 155 if (m_cachedFromImage != oldCachedFromImage) { 156 if (oldCachedFromImage) 157 oldCachedFromImage->removeClient(&m_crossfadeSubimageObserver); 158 if (m_cachedFromImage) 159 m_cachedFromImage->addClient(&m_crossfadeSubimageObserver); 160 } 161 162 if (m_cachedToImage != oldCachedToImage) { 163 if (oldCachedToImage) 164 oldCachedToImage->removeClient(&m_crossfadeSubimageObserver); 165 if (m_cachedToImage) 166 m_cachedToImage->addClient(&m_crossfadeSubimageObserver); 167 } 156 168 157 169 m_crossfadeSubimageObserver.setReady(true);
Note:
See TracChangeset
for help on using the changeset viewer.