Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1621)

Unified Diff: Source/core/rendering/svg/RenderSVGResourceFilter.h

Issue 678163002: Oilpan: move SVG property hierarchy to the heap. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rebased upto r185213 Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;
};
« no previous file with comments | « Source/core/rendering/svg/ReferenceFilterBuilder.cpp ('k') | Source/core/rendering/svg/RenderSVGResourceFilter.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698