summaryrefslogtreecommitdiffstats
path: root/WebCore/rendering/RenderSVGImage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/rendering/RenderSVGImage.cpp')
-rw-r--r--WebCore/rendering/RenderSVGImage.cpp16
1 files changed, 10 insertions, 6 deletions
diff --git a/WebCore/rendering/RenderSVGImage.cpp b/WebCore/rendering/RenderSVGImage.cpp
index 6fb9501..1fb7c0f 100644
--- a/WebCore/rendering/RenderSVGImage.cpp
+++ b/WebCore/rendering/RenderSVGImage.cpp
@@ -42,6 +42,7 @@ namespace WebCore {
RenderSVGImage::RenderSVGImage(SVGImageElement* impl)
: RenderImage(impl)
+ , m_needsTransformUpdate(true)
{
}
@@ -50,10 +51,13 @@ void RenderSVGImage::layout()
ASSERT(needsLayout());
LayoutRepainter repainter(*this, checkForRepaintDuringLayout());
-
SVGImageElement* image = static_cast<SVGImageElement*>(node());
- m_localTransform = image->animatedLocalTransform();
-
+
+ if (m_needsTransformUpdate) {
+ m_localTransform = image->animatedLocalTransform();
+ m_needsTransformUpdate = false;
+ }
+
// minimum height
setHeight(errorOccurred() ? intrinsicSize().height() : 0);
@@ -77,7 +81,7 @@ void RenderSVGImage::paint(PaintInfo& paintInfo, int, int)
paintInfo.context->concatCTM(localToParentTransform());
if (paintInfo.phase == PaintPhaseForeground) {
- SVGResourceFilter* filter = 0;
+ RenderSVGResourceFilter* filter = 0;
PaintInfo savedInfo(paintInfo);
@@ -95,14 +99,14 @@ void RenderSVGImage::paint(PaintInfo& paintInfo, int, int)
}
if ((paintInfo.phase == PaintPhaseOutline || paintInfo.phase == PaintPhaseSelfOutline) && style()->outlineWidth())
- paintOutline(paintInfo.context, 0, 0, width(), height(), style());
+ paintOutline(paintInfo.context, 0, 0, width(), height());
paintInfo.context->restore();
}
void RenderSVGImage::destroy()
{
- SVGRenderBase::deregisterFromResources(this);
+ deregisterFromResources(this);
RenderImage::destroy();
}