| Index: third_party/WebKit/Source/core/layout/svg/SVGResourcesCycleSolver.cpp
|
| diff --git a/third_party/WebKit/Source/core/layout/svg/SVGResourcesCycleSolver.cpp b/third_party/WebKit/Source/core/layout/svg/SVGResourcesCycleSolver.cpp
|
| index bda16fa157bde51566d3aa81be5517f5846ef3c7..949862295927de80fc9f9e3837ef8b8b5ecaa4ae 100644
|
| --- a/third_party/WebKit/Source/core/layout/svg/SVGResourcesCycleSolver.cpp
|
| +++ b/third_party/WebKit/Source/core/layout/svg/SVGResourcesCycleSolver.cpp
|
| @@ -19,14 +19,7 @@
|
|
|
| #include "core/layout/svg/SVGResourcesCycleSolver.h"
|
|
|
| -// Set to a value > 0, to debug the resource cache.
|
| -#define DEBUG_CYCLE_DETECTION 0
|
| -
|
| -#include "core/layout/svg/LayoutSVGResourceClipper.h"
|
| -#include "core/layout/svg/LayoutSVGResourceFilter.h"
|
| -#include "core/layout/svg/LayoutSVGResourceMarker.h"
|
| -#include "core/layout/svg/LayoutSVGResourceMasker.h"
|
| -#include "core/layout/svg/LayoutSVGResourcePaintServer.h"
|
| +#include "core/layout/svg/LayoutSVGResourceContainer.h"
|
| #include "core/layout/svg/SVGResources.h"
|
| #include "core/layout/svg/SVGResourcesCache.h"
|
|
|
| @@ -108,58 +101,10 @@ void SVGResourcesCycleSolver::ResolveCycles() {
|
| for (auto* local_resource : local_resources) {
|
| if (active_resources_.Contains(local_resource) ||
|
| ResourceContainsCycles(local_resource))
|
| - BreakCycle(local_resource);
|
| + resources_->ClearReferencesTo(local_resource);
|
| }
|
|
|
| active_resources_.Clear();
|
| }
|
|
|
| -void SVGResourcesCycleSolver::BreakCycle(
|
| - LayoutSVGResourceContainer* resource_leading_to_cycle) {
|
| - DCHECK(resource_leading_to_cycle);
|
| - if (resource_leading_to_cycle == resources_->LinkedResource()) {
|
| - resources_->ResetLinkedResource();
|
| - return;
|
| - }
|
| -
|
| - switch (resource_leading_to_cycle->ResourceType()) {
|
| - case kMaskerResourceType:
|
| - DCHECK_EQ(resource_leading_to_cycle, resources_->Masker());
|
| - resources_->ResetMasker();
|
| - break;
|
| - case kMarkerResourceType:
|
| - DCHECK(resource_leading_to_cycle == resources_->MarkerStart() ||
|
| - resource_leading_to_cycle == resources_->MarkerMid() ||
|
| - resource_leading_to_cycle == resources_->MarkerEnd());
|
| - if (resources_->MarkerStart() == resource_leading_to_cycle)
|
| - resources_->ResetMarkerStart();
|
| - if (resources_->MarkerMid() == resource_leading_to_cycle)
|
| - resources_->ResetMarkerMid();
|
| - if (resources_->MarkerEnd() == resource_leading_to_cycle)
|
| - resources_->ResetMarkerEnd();
|
| - break;
|
| - case kPatternResourceType:
|
| - case kLinearGradientResourceType:
|
| - case kRadialGradientResourceType:
|
| - DCHECK(resource_leading_to_cycle == resources_->Fill() ||
|
| - resource_leading_to_cycle == resources_->Stroke());
|
| - if (resources_->Fill() == resource_leading_to_cycle)
|
| - resources_->ResetFill();
|
| - if (resources_->Stroke() == resource_leading_to_cycle)
|
| - resources_->ResetStroke();
|
| - break;
|
| - case kFilterResourceType:
|
| - DCHECK_EQ(resource_leading_to_cycle, resources_->Filter());
|
| - resources_->ResetFilter();
|
| - break;
|
| - case kClipperResourceType:
|
| - DCHECK_EQ(resource_leading_to_cycle, resources_->Clipper());
|
| - resources_->ResetClipper();
|
| - break;
|
| - default:
|
| - NOTREACHED();
|
| - break;
|
| - }
|
| -}
|
| -
|
| } // namespace blink
|
|
|