| Index: Source/core/rendering/svg/RenderSVGResourceMarker.cpp | 
| diff --git a/Source/core/rendering/svg/RenderSVGResourceMarker.cpp b/Source/core/rendering/svg/RenderSVGResourceMarker.cpp | 
| index 4b5652280b96b76445f77b20fb20475a71a828d5..5f3108d384ce4f15a6251a31a5741d25dd9f5d4d 100644 | 
| --- a/Source/core/rendering/svg/RenderSVGResourceMarker.cpp | 
| +++ b/Source/core/rendering/svg/RenderSVGResourceMarker.cpp | 
| @@ -25,11 +25,12 @@ | 
|  | 
| #include "core/platform/graphics/GraphicsContextStateSaver.h" | 
| #include "core/rendering/svg/RenderSVGContainer.h" | 
| -#include "core/rendering/svg/RenderSVGRoot.h" | 
| #include "core/rendering/svg/SVGRenderSupport.h" | 
| #include "core/svg/SVGElement.h" | 
| #include "core/svg/SVGMarkerElement.h" | 
|  | 
| +#include "wtf/TemporaryChange.h" | 
| + | 
| namespace WebCore { | 
|  | 
| RenderSVGResourceType RenderSVGResourceMarker::s_resourceType = MarkerResourceType; | 
| @@ -45,9 +46,15 @@ RenderSVGResourceMarker::~RenderSVGResourceMarker() | 
|  | 
| void RenderSVGResourceMarker::layout() | 
| { | 
| +    ASSERT(needsLayout()); | 
| +    if (m_isInLayout) | 
| +        return; | 
| + | 
| +    TemporaryChange<bool> inLayoutChange(m_isInLayout, true); | 
| + | 
| // Invalidate all resources if our layout changed. | 
| if (everHadLayout() && selfNeedsLayout()) | 
| -        RenderSVGRoot::addResourceForClientInvalidation(this); | 
| +        removeAllClientsFromCache(); | 
|  | 
| // RenderSVGHiddenContainer overwrites layout(). We need the | 
| // layouting of RenderSVGContainer for calculating  local | 
|  |