| Index: Source/core/rendering/svg/RenderSVGModelObject.cpp
|
| diff --git a/Source/core/rendering/svg/RenderSVGModelObject.cpp b/Source/core/rendering/svg/RenderSVGModelObject.cpp
|
| index daeb2eedbac4cead26264887a974a5195655608a..0269301855984e9f2ca1d5addb06d74b79f23eb4 100644
|
| --- a/Source/core/rendering/svg/RenderSVGModelObject.cpp
|
| +++ b/Source/core/rendering/svg/RenderSVGModelObject.cpp
|
| @@ -125,11 +125,20 @@ void RenderSVGModelObject::absoluteFocusRingQuads(Vector<FloatQuad>& quads)
|
| quads.append(localToAbsoluteQuad(FloatQuad(paintInvalidationRectInLocalCoordinates())));
|
| }
|
|
|
| -InvalidationReason RenderSVGModelObject::invalidatePaintIfNeeded(const PaintInvalidationState& paintInvalidationState, const RenderLayerModelObject& paintInvalidationContainer)
|
| +void RenderSVGModelObject::invalidateTreeIfNeeded(const PaintInvalidationState& paintInvalidationState)
|
| {
|
| - ForceHorriblySlowRectMapping slowRectMapping(&paintInvalidationState);
|
| + ASSERT(!needsLayout());
|
|
|
| - return RenderObject::invalidatePaintIfNeeded(paintInvalidationState, paintInvalidationContainer);
|
| + // If we didn't need paint invalidation then our children don't need as well.
|
| + // Skip walking down the tree as everything should be fine below us.
|
| + if (!shouldCheckForPaintInvalidation(paintInvalidationState))
|
| + return;
|
| +
|
| + invalidatePaintIfNeeded(paintInvalidationState, paintInvalidationState.paintInvalidationContainer());
|
| + clearPaintInvalidationState(paintInvalidationState);
|
| +
|
| + PaintInvalidationState childPaintInvalidationState(paintInvalidationState, *this);
|
| + invalidatePaintOfSubtreesIfNeeded(childPaintInvalidationState);
|
| }
|
|
|
| } // namespace blink
|
|
|