| Index: Source/core/dom/Attr.h
|
| diff --git a/Source/core/dom/Attr.h b/Source/core/dom/Attr.h
|
| index b6b2b4d362cf339423ffc2e85de3264af8852fae..36b715f60b09a0e055f2868fc3320ff3e9148fea 100644
|
| --- a/Source/core/dom/Attr.h
|
| +++ b/Source/core/dom/Attr.h
|
| @@ -64,6 +64,7 @@ public:
|
| const AtomicString& prefix() const { return m_name.prefix(); }
|
|
|
| virtual void trace(Visitor*) OVERRIDE;
|
| + void clearWeakMembers(Visitor*);
|
|
|
| private:
|
| Attr(Element&, const QualifiedName&);
|
| @@ -89,7 +90,13 @@ private:
|
|
|
| // Attr wraps either an element/name, or a name/value pair (when it's a standalone Node.)
|
| // Note that m_name is always set, but m_element/m_standaloneValue may be null.
|
| - RawPtrWillBeMember<Element> m_element;
|
| + //
|
| + // FIXME: Oilpan: m_element should be a Member. However, because of the
|
| + // current semantics of weak maps, we have to make it a WeakMember in order
|
| + // to not leak through the attrNodeListMap in Element.cpp. Once the semantics
|
| + // of weak maps has changed we should make this a Member and remove the custom
|
| + // weak processing.
|
| + RawPtrWillBeWeakMember<Element> m_element;
|
| QualifiedName m_name;
|
| // Holds the value if it is a standalone Node, or the local name of the
|
| // attribute it is attached to on an Element. The latter may (letter case)
|
|
|