Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / core / rendering / svg / RenderSVGModelObject.cpp
index 39e8ee1..13d141f 100644 (file)
@@ -125,11 +125,20 @@ IntRect RenderSVGModelObject::absoluteFocusRingBoundingBoxRect() const
     return localToAbsoluteQuad(FloatQuad(paintInvalidationRectInLocalCoordinates())).enclosingBoundingBox();
 }
 
-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