 Chromium Code Reviews
 Chromium Code Reviews Issue 159503003:
  Do not cause unnecessary node lists invalidation on id/name attribute change  (Closed) 
  Base URL: svn://svn.chromium.org/blink/trunk
    
  
    Issue 159503003:
  Do not cause unnecessary node lists invalidation on id/name attribute change  (Closed) 
  Base URL: svn://svn.chromium.org/blink/trunk| Index: Source/core/dom/NodeRareData.h | 
| diff --git a/Source/core/dom/NodeRareData.h b/Source/core/dom/NodeRareData.h | 
| index 65f903c78e340d63339910aa936533b3acded7ce..62974e5d6f4399a94d4b17fbd562fef56af216d1 100644 | 
| --- a/Source/core/dom/NodeRareData.h | 
| +++ b/Source/core/dom/NodeRareData.h | 
| @@ -174,21 +174,18 @@ public: | 
| void adoptDocument(Document& oldDocument, Document& newDocument) | 
| { | 
| ASSERT(oldDocument != newDocument); | 
| - invalidateCaches(); | 
| 
Inactive
2014/02/12 18:26:08
We no longer need this as LiveNodeListBase::didMov
 | 
| NodeListAtomicNameCacheMap::const_iterator atomicNameCacheEnd = m_atomicNameCaches.end(); | 
| for (NodeListAtomicNameCacheMap::const_iterator it = m_atomicNameCaches.begin(); it != atomicNameCacheEnd; ++it) { | 
| LiveNodeListBase* list = it->value; | 
| - oldDocument.unregisterNodeList(list); | 
| - newDocument.registerNodeList(list); | 
| + list->didMoveToDocument(oldDocument, newDocument); | 
| 
Inactive
2014/02/12 18:26:08
didMoveToDocument() invalidates the nodelist cache
 | 
| } | 
| TagCollectionCacheNS::const_iterator tagEnd = m_tagCollectionCacheNS.end(); | 
| for (TagCollectionCacheNS::const_iterator it = m_tagCollectionCacheNS.begin(); it != tagEnd; ++it) { | 
| LiveNodeListBase* list = it->value; | 
| ASSERT(!list->isRootedAtDocument()); | 
| - oldDocument.unregisterNodeList(list); | 
| - newDocument.registerNodeList(list); | 
| + list->didMoveToDocument(oldDocument, newDocument); | 
| } | 
| } |