diff options
author | Kulanthaivel Palanichamy <kulanthaivel@codeaurora.org> | 2012-08-15 17:14:48 -0700 |
---|---|---|
committer | Steve Kondik <shade@chemlab.org> | 2013-01-20 18:38:34 -0800 |
commit | 91437969ddb28bc81b3652986a67aae7e2465db2 (patch) | |
tree | 4d09df4e02a483e573700d8bfacb6fec8b658a7c /Source/WebCore/dom/Document.cpp | |
parent | 0f5d4355d7a384679722338d55f65bbb92350cfc (diff) | |
download | external_webkit-91437969ddb28bc81b3652986a67aae7e2465db2.zip external_webkit-91437969ddb28bc81b3652986a67aae7e2465db2.tar.gz external_webkit-91437969ddb28bc81b3652986a67aae7e2465db2.tar.bz2 |
[WebKit] Browsermark DomAdvSearch and DomSearch optimizations
This patch is a combination of the following optimizations.
Optimize appendCharactersReplacingEntities
[Performance] Optimize innerHTML and outerHTML
https://bugs.webkit.org/show_bug.cgi?id=81214
Optimize Dromaeo/dom-query.html by caching NodeRareData on Document
https://bugs.webkit.org/show_bug.cgi?id=90059
Optimize Dromaeo/dom-attr.html by speeding up Element::getAttribute()
https://bugs.webkit.org/show_bug.cgi?id=90174
Change argument types of Element::getAttribute*() from String to AtomicString
https://bugs.webkit.org/show_bug.cgi?id=90246
Conflicts:
Source/WebCore/ChangeLog
Source/WebCore/dom/Document.cpp
Source/WebCore/dom/Document.h
Conflicts:
Source/WebCore/ChangeLog
Change-Id: I9ca3d2e883155e2ad08c3cb0c5912b935ebe9406
Diffstat (limited to 'Source/WebCore/dom/Document.cpp')
-rw-r--r-- | Source/WebCore/dom/Document.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/Source/WebCore/dom/Document.cpp b/Source/WebCore/dom/Document.cpp index 60ecdb9..f319cac 100644 --- a/Source/WebCore/dom/Document.cpp +++ b/Source/WebCore/dom/Document.cpp @@ -110,6 +110,7 @@ #include "NestingLevelIncrementer.h" #include "NodeFilter.h" #include "NodeIterator.h" +#include "NodeRareData.h" #include "NodeWithIndex.h" #include "OverflowEvent.h" #include "Page.h" @@ -424,6 +425,7 @@ Document::Document(Frame* frame, const KURL& url, bool isXHTML, bool isHTML) , m_sawElementsInKnownNamespaces(false) , m_usingGeolocation(false) , m_eventQueue(EventQueue::create(this)) + , m_documentRareData(0) #if ENABLE(WML) , m_containsWMLContent(false) #endif @@ -573,6 +575,13 @@ Document::~Document() if (m_implementation) m_implementation->ownerDocumentDestroyed(); + + if (hasRareData()) { + ASSERT(m_documentRareData); + delete m_documentRareData; + m_documentRareData = 0; + clearFlag(HasRareDataFlag); + } } void Document::removedLastRef() |