Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(608)

Unified Diff: Source/core/dom/ElementRareData.h

Issue 328243005: Remove attrNodeListMap. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Don't increase the size of ElementRareData Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698