Diff
Modified: trunk/Source/WebCore/ChangeLog (158009 => 158010)
--- trunk/Source/WebCore/ChangeLog 2013-10-25 13:49:57 UTC (rev 158009)
+++ trunk/Source/WebCore/ChangeLog 2013-10-25 13:52:57 UTC (rev 158010)
@@ -1,5 +1,15 @@
2013-10-25 Andreas Kling <[email protected]>
+ SVGResourcesCache::clientLayoutChanged() should take a RenderElement&.
+ <https://webkit.org/b/123336>
+
+ This function is always called with an object, and that object
+ is guaranteed to never be a text renderer.
+
+ Reviewed by Antti Koivisto.
+
+2013-10-25 Andreas Kling <[email protected]>
+
SVGResourcesCache::clientStyleChanged() should take a RenderElement&.
<https://webkit.org/b/123335>
Modified: trunk/Source/WebCore/rendering/svg/RenderSVGContainer.cpp (158009 => 158010)
--- trunk/Source/WebCore/rendering/svg/RenderSVGContainer.cpp 2013-10-25 13:49:57 UTC (rev 158009)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGContainer.cpp 2013-10-25 13:52:57 UTC (rev 158010)
@@ -73,7 +73,7 @@
// Invalidate all resources of this client if our layout changed.
if (everHadLayout() && needsLayout())
- SVGResourcesCache::clientLayoutChanged(this);
+ SVGResourcesCache::clientLayoutChanged(*this);
// At this point LayoutRepainter already grabbed the old bounds,
// recalculate them now so repaintAfterLayout() uses the new bounds.
Modified: trunk/Source/WebCore/rendering/svg/RenderSVGForeignObject.cpp (158009 => 158010)
--- trunk/Source/WebCore/rendering/svg/RenderSVGForeignObject.cpp 2013-10-25 13:49:57 UTC (rev 158009)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGForeignObject.cpp 2013-10-25 13:52:57 UTC (rev 158010)
@@ -168,7 +168,7 @@
// Invalidate all resources of this client if our layout changed.
if (layoutChanged)
- SVGResourcesCache::clientLayoutChanged(this);
+ SVGResourcesCache::clientLayoutChanged(*this);
repainter.repaintAfterLayout();
}
Modified: trunk/Source/WebCore/rendering/svg/RenderSVGImage.cpp (158009 => 158010)
--- trunk/Source/WebCore/rendering/svg/RenderSVGImage.cpp 2013-10-25 13:49:57 UTC (rev 158009)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGImage.cpp 2013-10-25 13:52:57 UTC (rev 158010)
@@ -108,7 +108,7 @@
// Invalidate all resources of this client if our layout changed.
if (everHadLayout() && selfNeedsLayout())
- SVGResourcesCache::clientLayoutChanged(this);
+ SVGResourcesCache::clientLayoutChanged(*this);
// If our bounds changed, notify the parents.
if (transformOrBoundariesUpdate)
Modified: trunk/Source/WebCore/rendering/svg/RenderSVGShape.cpp (158009 => 158010)
--- trunk/Source/WebCore/rendering/svg/RenderSVGShape.cpp 2013-10-25 13:49:57 UTC (rev 158009)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGShape.cpp 2013-10-25 13:52:57 UTC (rev 158010)
@@ -165,7 +165,7 @@
// Invalidate all resources of this client if our layout changed.
if (everHadLayout() && selfNeedsLayout())
- SVGResourcesCache::clientLayoutChanged(this);
+ SVGResourcesCache::clientLayoutChanged(*this);
// If our bounds changed, notify the parents.
if (updateCachedBoundariesInParents)
Modified: trunk/Source/WebCore/rendering/svg/RenderSVGText.cpp (158009 => 158010)
--- trunk/Source/WebCore/rendering/svg/RenderSVGText.cpp 2013-10-25 13:49:57 UTC (rev 158009)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGText.cpp 2013-10-25 13:52:57 UTC (rev 158010)
@@ -431,7 +431,7 @@
// Invalidate all resources of this client if our layout changed.
if (everHadLayout() && selfNeedsLayout())
- SVGResourcesCache::clientLayoutChanged(this);
+ SVGResourcesCache::clientLayoutChanged(*this);
// If our bounds changed, notify the parents.
if (updateCachedBoundariesInParents)
Modified: trunk/Source/WebCore/rendering/svg/SVGResourcesCache.cpp (158009 => 158010)
--- trunk/Source/WebCore/rendering/svg/SVGResourcesCache.cpp 2013-10-25 13:49:57 UTC (rev 158009)
+++ trunk/Source/WebCore/rendering/svg/SVGResourcesCache.cpp 2013-10-25 13:52:57 UTC (rev 158010)
@@ -101,16 +101,16 @@
return resourcesCacheFromRenderObject(renderer)->m_cache.get(renderer);
}
-void SVGResourcesCache::clientLayoutChanged(RenderObject* object)
+void SVGResourcesCache::clientLayoutChanged(RenderElement& renderer)
{
- SVGResources* resources = SVGResourcesCache::cachedResourcesForRenderObject(object);
+ SVGResources* resources = SVGResourcesCache::cachedResourcesForRenderObject(&renderer);
if (!resources)
return;
- // Invalidate the resources if either the RenderObject itself changed,
+ // Invalidate the resources if either the RenderElement itself changed,
// or we have filter resources, which could depend on the layout of children.
- if (object->selfNeedsLayout())
- resources->removeClientFromCache(object);
+ if (renderer.selfNeedsLayout())
+ resources->removeClientFromCache(&renderer);
}
static inline bool rendererCanHaveResources(RenderObject* renderer)
Modified: trunk/Source/WebCore/rendering/svg/SVGResourcesCache.h (158009 => 158010)
--- trunk/Source/WebCore/rendering/svg/SVGResourcesCache.h 2013-10-25 13:49:57 UTC (rev 158009)
+++ trunk/Source/WebCore/rendering/svg/SVGResourcesCache.h 2013-10-25 13:52:57 UTC (rev 158010)
@@ -27,6 +27,7 @@
namespace WebCore {
+class RenderElement;
class RenderObject;
class RenderStyle;
class RenderSVGResourceContainer;
@@ -50,7 +51,7 @@
static void clientDestroyed(RenderObject*);
// Called from all SVG renderers layout() methods.
- static void clientLayoutChanged(RenderObject*);
+ static void clientLayoutChanged(RenderElement&);
// Called from all SVG renderers styleDidChange() methods.
static void clientStyleChanged(RenderElement&, StyleDifference, const RenderStyle& newStyle);