Bug 76591

Summary: Cache and reuse the NodeList returned by Node::childNodes().
Product: WebKit Reporter: Andreas Kling <kling>
Component: DOMAssignee: Andreas Kling <kling>
Status: RESOLVED FIXED    
Severity: Normal CC: rboucher
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch rniwa: review+

Andreas Kling
Reported 2012-01-18 17:44:31 PST
We already cache the DynamicNodeList::Caches on NodeRareData, we should cache the entire ChildNodeList instead of recreating it every time to reduce memory consumption and match the behavior of other browsers.
Attachments
Patch (13.52 KB, patch)
2012-01-18 18:18 PST, Andreas Kling
rniwa: review+
Andreas Kling
Comment 1 2012-01-18 18:18:11 PST
Ryosuke Niwa
Comment 2 2012-01-18 18:30:03 PST
Comment on attachment 123048 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=123048&action=review Could you clarify that new behavior matches FF/Opera as discussed on IRC? > Source/WebCore/dom/ChildNodeList.h:44 > + void reset() { m_caches->reset(); } We should move m_caches to DynamicNodList. Once we do that, we can just call DyanmicNodeList::invalidateCache instead.
Ryosuke Niwa
Comment 3 2012-01-18 18:34:34 PST
Comment on attachment 123048 [details] Patch kling says he'll do the m_caches move in a follow up. r=me provided the change log entry is updated to mention the improved compatibility with other browsers.
Andreas Kling
Comment 4 2012-01-18 18:55:14 PST
Adam Barth
Comment 5 2012-02-17 15:16:41 PST
*** Bug 17184 has been marked as a duplicate of this bug. ***
Note You need to log in before you can comment on or make changes to this bug.