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

Unified Diff: Source/core/svg/graphics/filters/SVGFilterBuilder.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/svg/graphics/filters/SVGFilterBuilder.h
diff --git a/Source/core/svg/graphics/filters/SVGFilterBuilder.h b/Source/core/svg/graphics/filters/SVGFilterBuilder.h
index 74c2dc57e6b856c21e3c6cc3b0043b4445ebf0f2..585940a735dc2cf1491db07bb32b35e0f126f906 100644
--- a/Source/core/svg/graphics/filters/SVGFilterBuilder.h
+++ b/Source/core/svg/graphics/filters/SVGFilterBuilder.h
@@ -22,6 +22,7 @@
#define SVGFilterBuilder_h
#include "platform/graphics/filters/FilterEffect.h"
+#include "platform/heap/Handle.h"
#include "wtf/HashMap.h"
#include "wtf/HashSet.h"
#include "wtf/PassRefPtr.h"
@@ -32,18 +33,21 @@ namespace blink {
class RenderObject;
-class SVGFilterBuilder : public RefCounted<SVGFilterBuilder> {
+class SVGFilterBuilder final : public RefCountedWillBeGarbageCollectedFinalized<SVGFilterBuilder> {
public:
- typedef HashSet<FilterEffect*> FilterEffectSet;
+ typedef WillBeHeapHashSet<RawPtrWillBeMember<FilterEffect> > FilterEffectSet;
- static PassRefPtr<SVGFilterBuilder> create(PassRefPtr<FilterEffect> sourceGraphic, PassRefPtr<FilterEffect> sourceAlpha) { return adoptRef(new SVGFilterBuilder(sourceGraphic, sourceAlpha)); }
+ static PassRefPtrWillBeRawPtr<SVGFilterBuilder> create(PassRefPtrWillBeRawPtr<FilterEffect> sourceGraphic, PassRefPtrWillBeRawPtr<FilterEffect> sourceAlpha)
+ {
+ return adoptRefWillBeNoop(new SVGFilterBuilder(sourceGraphic, sourceAlpha));
+ }
- void add(const AtomicString& id, PassRefPtr<FilterEffect>);
+ void add(const AtomicString& id, PassRefPtrWillBeRawPtr<FilterEffect>);
FilterEffect* getEffectById(const AtomicString& id) const;
FilterEffect* lastEffect() const { return m_lastEffect.get(); }
- void appendEffectToEffectReferences(PassRefPtr<FilterEffect>, RenderObject*);
+ void appendEffectToEffectReferences(PassRefPtrWillBeRawPtr<FilterEffect>, RenderObject*);
inline FilterEffectSet& effectReferences(FilterEffect* effect)
{
@@ -58,24 +62,28 @@ public:
void clearEffects();
void clearResultsRecursive(FilterEffect*);
+ void trace(Visitor*);
+
private:
- SVGFilterBuilder(PassRefPtr<FilterEffect> sourceGraphic, PassRefPtr<FilterEffect> sourceAlpha);
+ SVGFilterBuilder(PassRefPtrWillBeRawPtr<FilterEffect> sourceGraphic, PassRefPtrWillBeRawPtr<FilterEffect> sourceAlpha);
inline void addBuiltinEffects()
{
- HashMap<AtomicString, RefPtr<FilterEffect> >::iterator end = m_builtinEffects.end();
- for (HashMap<AtomicString, RefPtr<FilterEffect> >::iterator iterator = m_builtinEffects.begin(); iterator != end; ++iterator)
+ NamedFilterEffectMap::iterator end = m_builtinEffects.end();
+ for (NamedFilterEffectMap::iterator iterator = m_builtinEffects.begin(); iterator != end; ++iterator)
m_effectReferences.add(iterator->value, FilterEffectSet());
}
- HashMap<AtomicString, RefPtr<FilterEffect> > m_builtinEffects;
- HashMap<AtomicString, RefPtr<FilterEffect> > m_namedEffects;
+ typedef WillBeHeapHashMap<AtomicString, RefPtrWillBeMember<FilterEffect> > NamedFilterEffectMap;
+
+ NamedFilterEffectMap m_builtinEffects;
+ NamedFilterEffectMap m_namedEffects;
// The value is a list, which contains those filter effects,
// which depends on the key filter effect.
- HashMap<RefPtr<FilterEffect>, FilterEffectSet> m_effectReferences;
- HashMap<RenderObject*, FilterEffect*> m_effectRenderer;
+ WillBeHeapHashMap<RefPtrWillBeMember<FilterEffect>, FilterEffectSet> m_effectReferences;
+ WillBeHeapHashMap<RenderObject*, RawPtrWillBeMember<FilterEffect> > m_effectRenderer;
- RefPtr<FilterEffect> m_lastEffect;
+ RefPtrWillBeMember<FilterEffect> m_lastEffect;
};
} // namespace blink
« no previous file with comments | « Source/core/svg/graphics/filters/SVGFilter.cpp ('k') | Source/core/svg/graphics/filters/SVGFilterBuilder.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698