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

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

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.cpp
diff --git a/Source/core/dom/ElementRareData.cpp b/Source/core/dom/ElementRareData.cpp
index 9bb9cc8afa4229e117ff3fcdbe95f90e10a3bbc2..3fba2afa08c6014abfa503022847d01d02c24cb4 100644
--- a/Source/core/dom/ElementRareData.cpp
+++ b/Source/core/dom/ElementRareData.cpp
@@ -31,6 +31,8 @@
#include "config.h"
#include "core/dom/ElementRareData.h"
+#include "core/dom/Attr.h"
+#include "core/dom/NamedNodeMap.h"
#include "core/rendering/style/RenderStyle.h"
namespace WebCore {
@@ -49,12 +51,19 @@ CSSStyleDeclaration& ElementRareData::ensureInlineCSSStyleDeclaration(Element* o
return *m_cssomWrapper;
}
+AttrData& ElementRareData::ensureAttrData()
+{
+ if (!m_attrData)
+ m_attrData = AttrData::create();
+ return *m_attrData;
+}
+
void ElementRareData::traceAfterDispatch(Visitor* visitor)
{
visitor->trace(m_dataset);
visitor->trace(m_classList);
visitor->trace(m_shadow);
- visitor->trace(m_attributeMap);
+ visitor->trace(m_attrData);
visitor->trace(m_inputMethodContext);
visitor->trace(m_activeAnimations);
visitor->trace(m_cssomWrapper);
@@ -66,4 +75,40 @@ void ElementRareData::traceAfterDispatch(Visitor* visitor)
COMPILE_ASSERT(sizeof(ElementRareData) == sizeof(SameSizeAsElementRareData), ElementRareDataShouldStaySmall);
+inline AttrData::AttrData()
esprehn 2014/06/17 08:27:05 Put it in the header or remove the inline.
+{
+}
+
+PassOwnPtrWillBeRawPtr<AttrData> AttrData::create()
+{
+ return adoptPtrWillBeNoop(new AttrData);
+}
+
+DEFINE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(AttrData)
+
+void AttrData::trace(Visitor* visitor)
+{
+#if ENABLE(OILPAN)
+ visitor->trace(m_attrNodeList);
+#endif
esprehn 2014/06/17 08:27:05 This code doesn't make sense. We should never call
Mads Ager (chromium) 2014/06/17 08:35:08 They are never called, but they are compiled.
esprehn 2014/06/17 11:06:04 Why won't think compile in non-oilpan mode? It's n
+ visitor->trace(m_attributeMap);
+}
+
+WillBeHeapVector<RefPtrWillBeMember<Attr> >& AttrData::ensureAttrNodeList()
+{
+ if (!m_attrNodeList)
+ m_attrNodeList = adoptPtrWillBeNoop(new WillBeHeapVector<RefPtrWillBeMember<Attr> >());
+ return *m_attrNodeList;
+}
+
+void AttrData::removeAttrNodeList()
+{
+ m_attrNodeList.clear();
+}
+
+void AttrData::setAttributeMap(PassOwnPtrWillBeRawPtr<NamedNodeMap> attributeMap)
+{
+ m_attributeMap = attributeMap;
+}
+
} // namespace WebCore

Powered by Google App Engine
This is Rietveld 408576698