Index: Source/core/dom/ElementRareData.h |
diff --git a/Source/core/dom/ElementRareData.h b/Source/core/dom/ElementRareData.h |
index cb3d3d34260662d7f94e7e61145a377edc499992..6bb2d6a5c124cb9e7f0016d13e960a35a9a58ed2 100644 |
--- a/Source/core/dom/ElementRareData.h |
+++ b/Source/core/dom/ElementRareData.h |
@@ -24,7 +24,6 @@ |
#include "core/animation/ActiveAnimations.h" |
#include "core/dom/DatasetDOMStringMap.h" |
-#include "core/dom/NamedNodeMap.h" |
#include "core/dom/NodeRareData.h" |
#include "core/dom/PseudoElement.h" |
#include "core/dom/custom/CustomElementDefinition.h" |
@@ -37,7 +36,9 @@ |
namespace WebCore { |
+class AttrData; |
class HTMLElement; |
+class NamedNodeMap; |
class ElementRareData : public NodeRareData { |
public: |
@@ -78,9 +79,6 @@ public: |
return *m_shadow; |
} |
- NamedNodeMap* attributeMap() const { return m_attributeMap.get(); } |
- void setAttributeMap(PassOwnPtrWillBeRawPtr<NamedNodeMap> attributeMap) { m_attributeMap = attributeMap; } |
- |
RenderStyle* computedStyle() const { return m_computedStyle.get(); } |
void setComputedStyle(PassRefPtr<RenderStyle> computedStyle) { m_computedStyle = computedStyle; } |
void clearComputedStyle() { m_computedStyle = nullptr; } |
@@ -123,6 +121,9 @@ public: |
void setCustomElementDefinition(PassRefPtr<CustomElementDefinition> definition) { m_customElementDefinition = definition; } |
CustomElementDefinition* customElementDefinition() const { return m_customElementDefinition.get(); } |
+ AttrData& ensureAttrData(); |
+ AttrData* attrData() { return m_attrData.get(); } |
esprehn
2014/06/17 08:27:05
const
|
+ |
void traceAfterDispatch(Visitor*); |
private: |
@@ -134,7 +135,7 @@ private: |
OwnPtrWillBeMember<DatasetDOMStringMap> m_dataset; |
OwnPtrWillBeMember<ClassList> m_classList; |
OwnPtrWillBeMember<ElementShadow> m_shadow; |
- OwnPtrWillBeMember<NamedNodeMap> m_attributeMap; |
+ OwnPtrWillBeMember<AttrData> m_attrData; |
OwnPtrWillBeMember<InputMethodContext> m_inputMethodContext; |
OwnPtrWillBeMember<ActiveAnimations> m_activeAnimations; |
OwnPtrWillBeMember<InlineCSSStyleDeclaration> m_cssomWrapper; |
@@ -226,6 +227,26 @@ inline void ElementRareData::resetStyleState() |
clearElementFlag(StyleAffectedByEmpty); |
} |
+class AttrData : public NoBaseWillBeGarbageCollected<AttrData> { |
haraken
2014/06/17 02:07:02
This is something like we're introducing another R
esprehn
2014/06/17 08:27:05
We really should put these in separate files, but
|
+ DECLARE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(AttrData); |
+public: |
+ static PassOwnPtrWillBeRawPtr<AttrData> create(); |
+ void trace(Visitor*); |
+ |
+ WillBeHeapVector<RefPtrWillBeMember<Attr> >& ensureAttrNodeList(); |
+ WillBeHeapVector<RefPtrWillBeMember<Attr> >* attrNodeList() { return m_attrNodeList.get(); } |
esprehn
2014/06/17 08:27:05
const
|
+ void removeAttrNodeList(); |
+ |
+ NamedNodeMap* attributeMap() const { return m_attributeMap.get(); } |
+ void setAttributeMap(PassOwnPtrWillBeRawPtr<NamedNodeMap>); |
+ |
+private: |
+ AttrData(); |
+ |
+ OwnPtrWillBeMember<WillBeHeapVector<RefPtrWillBeMember<Attr> > > m_attrNodeList; |
+ OwnPtrWillBeMember<NamedNodeMap> m_attributeMap; |
+}; |
+ |
} // namespace |
#endif // ElementRareData_h |