Chromium Code Reviews| 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; |
| }; |