Index: Source/core/rendering/svg/RenderSVGResourceFilter.h |
diff --git a/Source/core/rendering/svg/RenderSVGResourceFilter.h b/Source/core/rendering/svg/RenderSVGResourceFilter.h |
index d18d11457d3e726c87f796269b1f0b3f9cfbda90..2abe831943ec7c8002eac549e89547a080348ea2 100644 |
--- a/Source/core/rendering/svg/RenderSVGResourceFilter.h |
+++ b/Source/core/rendering/svg/RenderSVGResourceFilter.h |
@@ -31,21 +31,30 @@ |
namespace blink { |
-struct FilterData { |
- WTF_MAKE_FAST_ALLOCATED; |
+class FilterData final : public NoBaseWillBeGarbageCollected<FilterData> { |
+ WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED; |
public: |
enum FilterDataState { PaintingSource, Built, CycleDetected }; |
- FilterData() |
- : state(PaintingSource) |
+ static PassOwnPtrWillBeRawPtr<FilterData> create() |
{ |
+ return adoptPtrWillBeNoop(new FilterData()); |
} |
- RefPtr<SVGFilter> filter; |
- RefPtr<SVGFilterBuilder> builder; |
+ void trace(Visitor*); |
+ |
+ RefPtrWillBeMember<SVGFilter> filter; |
+ RefPtrWillBeMember<SVGFilterBuilder> builder; |
FloatRect boundaries; |
FloatRect drawingRegion; |
FilterDataState state; |
+ |
+private: |
+ FilterData() |
+ : state(PaintingSource) |
+ { |
+ } |
+ |
}; |
class GraphicsContext; |
@@ -53,7 +62,9 @@ class GraphicsContext; |
class RenderSVGResourceFilter final : public RenderSVGResourceContainer { |
public: |
explicit RenderSVGResourceFilter(SVGFilterElement*); |
+ |
virtual ~RenderSVGResourceFilter(); |
+ virtual void trace(Visitor*) override; |
virtual void destroy() override; |
virtual bool isChildAllowed(RenderObject*, RenderStyle*) const override; |
@@ -69,7 +80,7 @@ public: |
FloatRect resourceBoundingBox(const RenderObject*); |
- PassRefPtr<SVGFilterBuilder> buildPrimitives(SVGFilter*); |
+ PassRefPtrWillBeRawPtr<SVGFilterBuilder> buildPrimitives(SVGFilter*); |
SVGUnitTypes::SVGUnitType filterUnits() const { return toSVGFilterElement(element())->filterUnits()->currentValue()->enumValue(); } |
SVGUnitTypes::SVGUnitType primitiveUnits() const { return toSVGFilterElement(element())->primitiveUnits()->currentValue()->enumValue(); } |
@@ -81,7 +92,7 @@ public: |
FloatRect drawingRegion(RenderObject*) const; |
private: |
- typedef HashMap<RenderObject*, OwnPtr<FilterData> > FilterMap; |
+ typedef WillBeHeapHashMap<RawPtrWillBeMember<RenderObject>, OwnPtrWillBeMember<FilterData> > FilterMap; |
FilterMap m_filter; |
}; |