Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1235)

Unified Diff: Source/core/rendering/svg/RenderSVGShape.cpp

Issue 701433002: Lazily allocate svg shape transforms, shrink RenderSVGShape by 44B (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/core/rendering/svg/RenderSVGShape.cpp
diff --git a/Source/core/rendering/svg/RenderSVGShape.cpp b/Source/core/rendering/svg/RenderSVGShape.cpp
index ba966d95be3449e7eb0e36b9f6a72cebb94d4431..d18edac4a901d29c365a11c1f030131446b14de9 100644
--- a/Source/core/rendering/svg/RenderSVGShape.cpp
+++ b/Source/core/rendering/svg/RenderSVGShape.cpp
@@ -123,7 +123,8 @@ void RenderSVGShape::layout()
}
if (m_needsTransformUpdate) {
- m_localTransform = toSVGGraphicsElement(element())->calculateAnimatedLocalTransform();
+ SVGGraphicsElement* graphicsElement = toSVGGraphicsElement(element());
+ m_localTransform = graphicsElement->hasAnimatedLocalTransform() ? adoptPtr(new AffineTransform(graphicsElement->calculateAnimatedLocalTransform())) : 0;
fs 2014/11/05 13:46:47 It'd be nice to not reallocate the transform for e
f(malita) 2014/11/06 22:16:15 +1 for avoiding unnecessary reallocations. Even if
pdr. 2014/11/07 04:20:27 Agreed and done :)
m_needsTransformUpdate = false;
updateCachedBoundariesInParents = true;
}
@@ -175,7 +176,7 @@ bool RenderSVGShape::nodeAtFloatPoint(const HitTestRequest& request, HitTestResu
return false;
FloatPoint localPoint;
- if (!SVGRenderSupport::transformToUserSpaceAndCheckClipping(this, m_localTransform, pointInParent, localPoint))
+ if (!SVGRenderSupport::transformToUserSpaceAndCheckClipping(this, localToParentTransform(), pointInParent, localPoint))
return false;
PointerEventsHitRules hitRules(PointerEventsHitRules::SVG_GEOMETRY_HITTESTING, request, style()->pointerEvents());

Powered by Google App Engine
This is Rietveld 408576698