Chromium Code Reviews| Index: Source/core/rendering/svg/RenderSVGResourceFilter.h |
| diff --git a/Source/core/rendering/svg/RenderSVGResourceFilter.h b/Source/core/rendering/svg/RenderSVGResourceFilter.h |
| index 6c0b95aa98c9fc1e5241f283ed6697a067fdc249..f167a67132c22bf76b3e745fb0ba755aec12900d 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<RenderObject*, OwnPtrWillBeMember<FilterData> > FilterMap; |
|
haraken
2014/11/11 05:22:46
RenderObject* => RawPtrWillBeMember<RenderObject>
sof
2014/11/12 13:45:07
Done, a safe change wrt lifetime. Also tidied up t
|
| FilterMap m_filter; |
| }; |