Fix <rdar://problem/5609579> (DOMParser().parseFromString() freezes Safari when parsi...
authormrowe@apple.com <mrowe@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 21 Nov 2007 07:29:50 +0000 (07:29 +0000)
committermrowe@apple.com <mrowe@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 21 Nov 2007 07:29:50 +0000 (07:29 +0000)
commitd54d5da57b18a0cb451c0d331ccbe70ffd2a8cfd
tree961909b95d725dff1d31bb6e03eb6b984c7620e9
parentfa2eefbf50b79ae736b53df8eda91c2b2c6a29d6
Fix <rdar://problem/5609579> (DOMParser().parseFromString() freezes Safari when parsing large nodes with XML entities)
http://bugs.webkit.org/show_bug.cgi?id=16076

Reviewed by Maciej Stachowiak.

XMLTokenizer was calling CharacterData::appendData twice per entity in the fragment of XML being
parsed (once for text before the entity, once for the entity itself).  This triggered O(n^2) copying
of the CharacterData's string due to resizing.  We now prevent this happening by buffering all the
content for a given Text node in the XMLTokenizer before sending it out to the node in a single go.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@27936 268f45cc-cd09-0410-ab3c-d52691b4dbfc
WebCore/ChangeLog
WebCore/dom/XMLTokenizer.cpp
WebCore/dom/XMLTokenizer.h