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 |