| Index: Source/core/layout/svg/LayoutSVGResourceContainer.cpp
|
| diff --git a/Source/core/layout/svg/LayoutSVGResourceContainer.cpp b/Source/core/layout/svg/LayoutSVGResourceContainer.cpp
|
| index 27d011d378f9d148f1bf176f1c719ea9074f6ce5..56b849e3b79b7ce2a6e1dfb482d33d4831e3aaf7 100644
|
| --- a/Source/core/layout/svg/LayoutSVGResourceContainer.cpp
|
| +++ b/Source/core/layout/svg/LayoutSVGResourceContainer.cpp
|
| @@ -243,6 +243,7 @@ static inline void removeFromCacheAndInvalidateDependencies(LayoutObject* object
|
|
|
| if (!object->node() || !object->node()->isSVGElement())
|
| return;
|
| +
|
| SVGElementSet* dependencies = toSVGElement(object->node())->setOfIncomingReferences();
|
| if (!dependencies)
|
| return;
|
| @@ -251,10 +252,9 @@ static inline void removeFromCacheAndInvalidateDependencies(LayoutObject* object
|
| // reference graph adjustments on changes, so we need to break possible cycles here.
|
| // This strong reference is safe, as it is guaranteed that this set will be emptied
|
| // at the end of recursion.
|
| - typedef WillBeHeapHashSet<RawPtrWillBeMember<SVGElement>> SVGElementSet;
|
| DEFINE_STATIC_LOCAL(OwnPtrWillBePersistent<SVGElementSet>, invalidatingDependencies, (adoptPtrWillBeNoop(new SVGElementSet)));
|
|
|
| - for (auto* element : *dependencies) {
|
| + for (SVGElement* element : *dependencies) {
|
| if (LayoutObject* layoutObject = element->layoutObject()) {
|
| if (UNLIKELY(!invalidatingDependencies->add(element).isNewEntry)) {
|
| // Reference cycle: we are in process of invalidating this dependant.
|
|
|