Index: Source/core/rendering/svg/RenderSVGModelObject.cpp |
diff --git a/Source/core/rendering/svg/RenderSVGModelObject.cpp b/Source/core/rendering/svg/RenderSVGModelObject.cpp |
index e7449ad3e984ca7c67df571eda0a7fcca2b93df0..d8a2012cbc5a9d973725cd5f9548f6d9d5f3fa9d 100644 |
--- a/Source/core/rendering/svg/RenderSVGModelObject.cpp |
+++ b/Source/core/rendering/svg/RenderSVGModelObject.cpp |
@@ -50,19 +50,19 @@ bool RenderSVGModelObject::isChildAllowed(RenderObject* child, RenderStyle*) con |
return child->isSVG() && !(child->isSVGInline() || child->isSVGInlineText()); |
} |
-LayoutRect RenderSVGModelObject::clippedOverflowRectForPaintInvalidation(const RenderLayerModelObject* paintInvalidationContainer) const |
+LayoutRect RenderSVGModelObject::clippedOverflowRectForPaintInvalidation(const RenderLayerModelObject* paintInvalidationContainer, const InvalidationTreeWalkState* invalidationTreeWalkState) const |
{ |
- return SVGRenderSupport::clippedOverflowRectForRepaint(this, paintInvalidationContainer); |
+ return SVGRenderSupport::clippedOverflowRectForRepaint(this, paintInvalidationContainer, invalidationTreeWalkState); |
} |
-void RenderSVGModelObject::computeFloatRectForPaintInvalidation(const RenderLayerModelObject* paintInvalidationContainer, FloatRect& paintInvalidationRect, bool fixed) const |
+void RenderSVGModelObject::computeFloatRectForPaintInvalidation(const RenderLayerModelObject* paintInvalidationContainer, FloatRect& paintInvalidationRect, bool fixed, const InvalidationTreeWalkState* invalidationTreeWalkState) const |
{ |
- SVGRenderSupport::computeFloatRectForRepaint(this, paintInvalidationContainer, paintInvalidationRect, fixed); |
+ SVGRenderSupport::computeFloatRectForRepaint(this, paintInvalidationContainer, paintInvalidationRect, fixed, invalidationTreeWalkState); |
} |
-void RenderSVGModelObject::mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState& transformState, MapCoordinatesFlags, bool* wasFixed) const |
+void RenderSVGModelObject::mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState& transformState, MapCoordinatesFlags, bool* wasFixed, const InvalidationTreeWalkState* invalidationTreeWalkState) const |
{ |
- SVGRenderSupport::mapLocalToContainer(this, repaintContainer, transformState, wasFixed); |
+ SVGRenderSupport::mapLocalToContainer(this, repaintContainer, transformState, wasFixed, invalidationTreeWalkState); |
} |
const RenderObject* RenderSVGModelObject::pushMappingToContainer(const RenderLayerModelObject* ancestorToStopAt, RenderGeometryMap& geometryMap) const |
@@ -124,7 +124,7 @@ void RenderSVGModelObject::absoluteFocusRingQuads(Vector<FloatQuad>& quads) |
quads.append(localToAbsoluteQuad(FloatQuad(paintInvalidationRectInLocalCoordinates()))); |
} |
-void RenderSVGModelObject::invalidateTreeAfterLayout(const RenderLayerModelObject& paintInvalidationContainer) |
+void RenderSVGModelObject::invalidateTreeAfterLayout(const InvalidationTreeWalkState& invalidationTreeWalkState) |
{ |
// Note: This is a reduced version of RenderBox::invalidateTreeAfterLayout(). |
// FIXME: Should share code with RenderBox::invalidateTreeAfterLayout(). |
@@ -133,13 +133,13 @@ void RenderSVGModelObject::invalidateTreeAfterLayout(const RenderLayerModelObjec |
if (!shouldCheckForPaintInvalidationAfterLayout()) |
return; |
- ForceHorriblySlowRectMapping slowRectMapping(*this); |
+ ForceHorriblySlowRectMapping slowRectMapping(&invalidationTreeWalkState); |
const LayoutRect oldPaintInvalidationRect = previousPaintInvalidationRect(); |
const LayoutPoint oldPositionFromPaintInvalidationContainer = previousPositionFromPaintInvalidationContainer(); |
- ASSERT(&paintInvalidationContainer == containerForPaintInvalidation()); |
- setPreviousPaintInvalidationRect(boundsRectForPaintInvalidation(&paintInvalidationContainer)); |
- setPreviousPositionFromPaintInvalidationContainer(RenderLayer::positionFromPaintInvalidationContainer(this, &paintInvalidationContainer)); |
+ ASSERT(invalidationTreeWalkState.paintInvalidationContainer() == containerForPaintInvalidation()); |
+ setPreviousPaintInvalidationRect(boundsRectForPaintInvalidation(&invalidationTreeWalkState.paintInvalidationContainer(), &invalidationTreeWalkState)); |
+ setPreviousPositionFromPaintInvalidationContainer(RenderLayer::positionFromPaintInvalidationContainer(this, &invalidationTreeWalkState.paintInvalidationContainer(), &invalidationTreeWalkState)); |
// If an ancestor container had its transform changed, then we just |
// need to update the RenderSVGModelObject's repaint rect above. The invalidation |
@@ -152,13 +152,13 @@ void RenderSVGModelObject::invalidateTreeAfterLayout(const RenderLayerModelObjec |
// issue paint invalidations. We can then skip issuing of paint invalidations for the child |
// renderers as they'll be covered by the RenderView. |
if (view()->doingFullRepaint()) { |
- RenderObject::invalidateTreeAfterLayout(paintInvalidationContainer); |
+ RenderObject::invalidateTreeAfterLayout(invalidationTreeWalkState); |
return; |
} |
invalidatePaintIfNeeded(containerForPaintInvalidation(), oldPaintInvalidationRect, oldPositionFromPaintInvalidationContainer); |
- RenderObject::invalidateTreeAfterLayout(paintInvalidationContainer); |
+ RenderObject::invalidateTreeAfterLayout(invalidationTreeWalkState); |
} |
} // namespace WebCore |