| Index: Source/core/dom/Node.cpp
|
| diff --git a/Source/core/dom/Node.cpp b/Source/core/dom/Node.cpp
|
| index 99c8197c9f1ec1137fd2a0c741d3a1e7862bab87..64077c3307656370dc7ea22fc75b65fb10647884 100644
|
| --- a/Source/core/dom/Node.cpp
|
| +++ b/Source/core/dom/Node.cpp
|
| @@ -327,10 +327,10 @@ NodeRareData* Node::rareData() const
|
| return static_cast<NodeRareData*>(m_data.m_rareData);
|
| }
|
|
|
| -NodeRareData* Node::ensureRareData()
|
| +NodeRareData& Node::ensureRareData()
|
| {
|
| if (hasRareData())
|
| - return rareData();
|
| + return *rareData();
|
|
|
| NodeRareData* data;
|
| if (isElementNode())
|
| @@ -341,7 +341,7 @@ NodeRareData* Node::ensureRareData()
|
|
|
| m_data.m_rareData = data;
|
| setFlag(HasRareDataFlag);
|
| - return data;
|
| + return *data;
|
| }
|
|
|
| void Node::clearRareData()
|
| @@ -380,7 +380,7 @@ void Node::setNodeValue(const String&)
|
|
|
| PassRefPtr<NodeList> Node::childNodes()
|
| {
|
| - return ensureRareData()->ensureNodeLists()->ensureChildNodeList(this);
|
| + return ensureRareData().ensureNodeLists()->ensureChildNodeList(this);
|
| }
|
|
|
| Node *Node::lastDescendant() const
|
| @@ -1213,8 +1213,8 @@ PassRefPtr<NodeList> Node::getElementsByTagName(const AtomicString& localName)
|
| return 0;
|
|
|
| if (document().isHTMLDocument())
|
| - return ensureRareData()->ensureNodeLists()->addCacheWithAtomicName<HTMLTagNodeList>(this, HTMLTagNodeListType, localName);
|
| - return ensureRareData()->ensureNodeLists()->addCacheWithAtomicName<TagNodeList>(this, TagNodeListType, localName);
|
| + return ensureRareData().ensureNodeLists()->addCacheWithAtomicName<HTMLTagNodeList>(this, HTMLTagNodeListType, localName);
|
| + return ensureRareData().ensureNodeLists()->addCacheWithAtomicName<TagNodeList>(this, TagNodeListType, localName);
|
| }
|
|
|
| PassRefPtr<NodeList> Node::getElementsByTagNameNS(const AtomicString& namespaceURI, const AtomicString& localName)
|
| @@ -1225,23 +1225,23 @@ PassRefPtr<NodeList> Node::getElementsByTagNameNS(const AtomicString& namespaceU
|
| if (namespaceURI == starAtom)
|
| return getElementsByTagName(localName);
|
|
|
| - return ensureRareData()->ensureNodeLists()->addCacheWithQualifiedName(this, namespaceURI.isEmpty() ? nullAtom : namespaceURI, localName);
|
| + return ensureRareData().ensureNodeLists()->addCacheWithQualifiedName(this, namespaceURI.isEmpty() ? nullAtom : namespaceURI, localName);
|
| }
|
|
|
| PassRefPtr<NodeList> Node::getElementsByName(const String& elementName)
|
| {
|
| - return ensureRareData()->ensureNodeLists()->addCacheWithAtomicName<NameNodeList>(this, NameNodeListType, elementName);
|
| + return ensureRareData().ensureNodeLists()->addCacheWithAtomicName<NameNodeList>(this, NameNodeListType, elementName);
|
| }
|
|
|
| PassRefPtr<NodeList> Node::getElementsByClassName(const String& classNames)
|
| {
|
| - return ensureRareData()->ensureNodeLists()->addCacheWithName<ClassNodeList>(this, ClassNodeListType, classNames);
|
| + return ensureRareData().ensureNodeLists()->addCacheWithName<ClassNodeList>(this, ClassNodeListType, classNames);
|
| }
|
|
|
| PassRefPtr<RadioNodeList> Node::radioNodeList(const AtomicString& name)
|
| {
|
| ASSERT(hasTagName(formTag) || hasTagName(fieldsetTag));
|
| - return ensureRareData()->ensureNodeLists()->addCacheWithAtomicName<RadioNodeList>(this, RadioNodeListType, name);
|
| + return ensureRareData().ensureNodeLists()->addCacheWithAtomicName<RadioNodeList>(this, RadioNodeListType, name);
|
| }
|
|
|
| PassRefPtr<Element> Node::querySelector(const AtomicString& selectors, ExceptionState& es)
|
| @@ -2170,7 +2170,7 @@ void Node::getRegisteredMutationObserversOfType(HashMap<MutationObserver*, Mutat
|
| void Node::registerMutationObserver(MutationObserver* observer, MutationObserverOptions options, const HashSet<AtomicString>& attributeFilter)
|
| {
|
| MutationObserverRegistration* registration = 0;
|
| - Vector<OwnPtr<MutationObserverRegistration> >& registry = ensureRareData()->ensureMutationObserverData()->registry;
|
| + Vector<OwnPtr<MutationObserverRegistration> >& registry = ensureRareData().ensureMutationObserverData()->registry;
|
| for (size_t i = 0; i < registry.size(); ++i) {
|
| if (registry[i]->observer() == observer) {
|
| registration = registry[i].get();
|
| @@ -2207,7 +2207,7 @@ void Node::unregisterMutationObserver(MutationObserverRegistration* registration
|
|
|
| void Node::registerTransientMutationObserver(MutationObserverRegistration* registration)
|
| {
|
| - ensureRareData()->ensureMutationObserverData()->transientRegistry.add(registration);
|
| + ensureRareData().ensureMutationObserverData()->transientRegistry.add(registration);
|
| }
|
|
|
| void Node::unregisterTransientMutationObserver(MutationObserverRegistration* registration)
|
| @@ -2488,7 +2488,7 @@ unsigned Node::connectedSubframeCount() const
|
| void Node::incrementConnectedSubframeCount(unsigned amount)
|
| {
|
| ASSERT(isContainerNode());
|
| - ensureRareData()->incrementConnectedSubframeCount(amount);
|
| + ensureRareData().incrementConnectedSubframeCount(amount);
|
| }
|
|
|
| void Node::decrementConnectedSubframeCount(unsigned amount)
|
|
|