| 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;
|
| };
|
|
|
|
|