Index: Source/core/svg/properties/SVGAnimatedProperty.h |
diff --git a/Source/core/svg/properties/SVGAnimatedProperty.h b/Source/core/svg/properties/SVGAnimatedProperty.h |
index 7e7b3caa4588a861daade3027bd6195218e75340..04e8df4cf5a9bed7c7b539dd3deba79e609a6e5d 100644 |
--- a/Source/core/svg/properties/SVGAnimatedProperty.h |
+++ b/Source/core/svg/properties/SVGAnimatedProperty.h |
@@ -92,7 +92,6 @@ public: |
DEFINE_INLINE_VIRTUAL_TRACE() |
{ |
- visitor->trace(m_contextElement); |
} |
protected: |
@@ -103,7 +102,22 @@ private: |
bool m_isReadOnly; |
// This reference is kept alive from V8 wrapper |
- RawPtrWillBeMember<SVGElement> m_contextElement; |
+ // TODO(oilpan): This should be a Member. Currently we cannot do it because |
+ // it creates a cycle as follows: |
+ // SVGInterporation =(Persistent)=> |
+ // SVGAnimatedProperty =(Member)=> |
+ // SVGElement =(Member)=> |
+ // ElementRareData =(Member)=> |
+ // ElementAnimations =(part of object)=> |
+ // CSSAnimations =(part of object)=> |
+ // CSSAnimationUpdate =(Member)=> |
+ // NewTransition =(Member)=> |
+ // InertEffect =(Member)=> |
+ // EffectModel =(RefPtr)=> |
+ // InterpolationEffect =(RefPtr)=> |
+ // InterpolationRecord =(RefPtr)=> |
+ // SVGInterpolation |
+ SVGElement* m_contextElement; |
sof
2015/09/04 07:16:49
Add a GC_PLUGIN_IGNORE() (and a tracking issue, if
haraken
2015/09/04 07:18:03
Will do in a follow-up (to fix the leak in oilpan
|
const QualifiedName& m_attributeName; |
}; |