Title: [115639] trunk/Source/WebCore
Revision
115639
Author
[email protected]
Date
2012-04-30 08:26:08 -0700 (Mon, 30 Apr 2012)

Log Message

<rdar://problem/11313710> Leaks under WebCore::CSSImageSetValue::cachedImageSet when running tests

There was a reference cycle between CSSImageSetValue and StyleCachedImageSet via
CSSImageSetValue::m_imageSet / StyleCachedImageSet::m_imageSetValue. Break the cycle
by having StyleCachedImageSet hold a weak reference to the CSSImageSetValue rather
than a strong reference.

Reviewed by Geoff Garen.

* rendering/style/StyleCachedImageSet.cpp:
(WebCore::StyleCachedImageSet::StyleCachedImageSet):
* rendering/style/StyleCachedImageSet.h:
(StyleCachedImageSet):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (115638 => 115639)


--- trunk/Source/WebCore/ChangeLog	2012-04-30 15:14:36 UTC (rev 115638)
+++ trunk/Source/WebCore/ChangeLog	2012-04-30 15:26:08 UTC (rev 115639)
@@ -1043,6 +1043,22 @@
 
 2012-04-27  Mark Rowe  <[email protected]>
 
+        <rdar://problem/11313710> Leaks under WebCore::CSSImageSetValue::cachedImageSet when running tests
+
+        There was a reference cycle between CSSImageSetValue and StyleCachedImageSet via
+        CSSImageSetValue::m_imageSet / StyleCachedImageSet::m_imageSetValue. Break the cycle
+        by having StyleCachedImageSet hold a weak reference to the CSSImageSetValue rather
+        than a strong reference.
+
+        Reviewed by Geoff Garen.
+
+        * rendering/style/StyleCachedImageSet.cpp:
+        (WebCore::StyleCachedImageSet::StyleCachedImageSet):
+        * rendering/style/StyleCachedImageSet.h:
+        (StyleCachedImageSet):
+
+2012-04-27  Mark Rowe  <[email protected]>
+
         <rdar://problem/10346980> REGRESSION: Cannot enter text in Dashboard widget fields that have placeholder attribute
 
         Remove a dashboard backwards compatibility quirk that was in place to support an old version

Modified: trunk/Source/WebCore/rendering/style/StyleCachedImageSet.cpp (115638 => 115639)


--- trunk/Source/WebCore/rendering/style/StyleCachedImageSet.cpp	2012-04-30 15:14:36 UTC (rev 115638)
+++ trunk/Source/WebCore/rendering/style/StyleCachedImageSet.cpp	2012-04-30 15:26:08 UTC (rev 115639)
@@ -34,10 +34,10 @@
 
 namespace WebCore {
 
-StyleCachedImageSet::StyleCachedImageSet(CachedImage* image, float imageScaleFactor, PassRefPtr<CSSImageSetValue> value)
+StyleCachedImageSet::StyleCachedImageSet(CachedImage* image, float imageScaleFactor, CSSImageSetValue* value)
     : m_bestFitImage(image)
     , m_imageScaleFactor(imageScaleFactor)
-    , m_imageSetValue(value)  
+    , m_imageSetValue(value)
 {
     m_isCachedImageSet = true;
     m_bestFitImage->addClient(this);

Modified: trunk/Source/WebCore/rendering/style/StyleCachedImageSet.h (115638 => 115639)


--- trunk/Source/WebCore/rendering/style/StyleCachedImageSet.h	2012-04-30 15:14:36 UTC (rev 115638)
+++ trunk/Source/WebCore/rendering/style/StyleCachedImageSet.h	2012-04-30 15:26:08 UTC (rev 115639)
@@ -71,11 +71,11 @@
     virtual PassRefPtr<Image> image(RenderObject*, const IntSize&) const;
     
 private:
-    StyleCachedImageSet(CachedImage*, float imageScaleFactor, PassRefPtr<CSSImageSetValue>);
+    StyleCachedImageSet(CachedImage*, float imageScaleFactor, CSSImageSetValue*);
 
     CachedResourceHandle<CachedImage> m_bestFitImage;
     float m_imageScaleFactor;
-    RefPtr<CSSImageSetValue> m_imageSetValue;
+    CSSImageSetValue* m_imageSetValue; // Not retained; it owns us.
 };
 
 } // namespace WebCore
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to