Index: Source/core/layout/svg/LayoutSVGForeignObject.cpp |
diff --git a/Source/core/layout/svg/LayoutSVGForeignObject.cpp b/Source/core/layout/svg/LayoutSVGForeignObject.cpp |
index 298769cb550d6a2d08530aea77fb106b52f22efb..3cfa30a0ec7f4b2a036086047b451f6944bd9203 100644 |
--- a/Source/core/layout/svg/LayoutSVGForeignObject.cpp |
+++ b/Source/core/layout/svg/LayoutSVGForeignObject.cpp |
@@ -93,8 +93,12 @@ void LayoutSVGForeignObject::layout() |
// Cache viewport boundaries |
SVGLengthContext lengthContext(foreign); |
- FloatPoint viewportLocation(foreign->x()->currentValue()->value(lengthContext), foreign->y()->currentValue()->value(lengthContext)); |
- m_viewport = FloatRect(viewportLocation, FloatSize(foreign->width()->currentValue()->value(lengthContext), foreign->height()->currentValue()->value(lengthContext))); |
+ FloatPoint viewportLocation( |
+ lengthContext.valueForLength(styleRef().svgStyle().x(), styleRef(), SVGLengthMode::Width), |
+ lengthContext.valueForLength(styleRef().svgStyle().y(), styleRef(), SVGLengthMode::Height)); |
+ m_viewport = FloatRect(viewportLocation, FloatSize( |
+ lengthContext.valueForLength(styleRef().width(), styleRef(), SVGLengthMode::Width), |
+ lengthContext.valueForLength(styleRef().height(), styleRef(), SVGLengthMode::Height))); |
if (!updateCachedBoundariesInParents) |
updateCachedBoundariesInParents = oldViewport != m_viewport; |