diff options
Diffstat (limited to 'Source/WebCore/dom/NodeRareData.h')
-rw-r--r-- | Source/WebCore/dom/NodeRareData.h | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/Source/WebCore/dom/NodeRareData.h b/Source/WebCore/dom/NodeRareData.h index ac05d3e..7bbd0c1 100644 --- a/Source/WebCore/dom/NodeRareData.h +++ b/Source/WebCore/dom/NodeRareData.h @@ -49,10 +49,13 @@ public: typedef HashMap<String, NameNodeList*> NameNodeListCache; NameNodeListCache m_nameNodeListCache; - - typedef HashMap<RefPtr<QualifiedName::QualifiedNameImpl>, TagNodeList*> TagNodeListCache; + + typedef HashMap<AtomicStringImpl*, TagNodeList*> TagNodeListCache; TagNodeListCache m_tagNodeListCache; + typedef HashMap<RefPtr<QualifiedName::QualifiedNameImpl>, TagNodeListNS*> TagNodeListCacheNS; + TagNodeListCacheNS m_tagNodeListCacheNS; + RefPtr<DynamicNodeList> m_labelsNodeListCache; static PassOwnPtr<NodeListsNodeData> create() @@ -106,6 +109,15 @@ public: void clearNodeLists() { m_nodeLists.clear(); } void setNodeLists(PassOwnPtr<NodeListsNodeData> lists) { m_nodeLists = lists; } NodeListsNodeData* nodeLists() const { return m_nodeLists.get(); } + NodeListsNodeData* ensureNodeLists(Node* n) + { + if (!m_nodeLists) { + m_nodeLists = NodeListsNodeData::create(); + if (n->document()) + n->document()->addNodeListCache(); + } + return m_nodeLists.get(); + } short tabIndex() const { return m_tabIndex; } void setTabIndexExplicitly(short index) { m_tabIndex = index; m_tabIndexWasSetExplicitly = true; } |