2010-07-07 Eric Seidel <eric@webkit.org>
authorabarth@webkit.org <abarth@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 7 Jul 2010 17:11:28 +0000 (17:11 +0000)
committerabarth@webkit.org <abarth@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 7 Jul 2010 17:11:28 +0000 (17:11 +0000)
commita2076d570655c07d71f8c4ccaab6556e5eb8a338
tree83e222e73b05f0bbc5237951eea01af2d1a536f6
parent6b03b4fd907ae5ae58d5204a762af12d5674f3c6
2010-07-07  Eric Seidel  <eric@webkit.org>

        Reviewed by Adam Barth.

        HTMLTreeBuilder is way too slow
        https://bugs.webkit.org/show_bug.cgi?id=41754

        This takes us from 14s to 7s on our parsing benchmark.
        That's still much slower than the old tree builder, but there
        is a huge amount of fat left to trim.

        Vector<T> wasn't able to inline all the Entry functions when
        they were buried in the cpp.  Turns out the active formatting elements
        list is very hot.

        I'm not sure Vector<T> is going to be the right data structure for us
        in the end, but it has done alright for bring-up.

        * html/HTMLFormattingElementList.cpp:
        * html/HTMLFormattingElementList.h:
        (WebCore::HTMLFormattingElementList::Entry::Entry):
        (WebCore::HTMLFormattingElementList::Entry::~Entry):
        (WebCore::HTMLFormattingElementList::Entry::isMarker):
        (WebCore::HTMLFormattingElementList::Entry::element):
        (WebCore::HTMLFormattingElementList::Entry::replaceElement):
        (WebCore::HTMLFormattingElementList::Entry::operator==):
        (WebCore::HTMLFormattingElementList::Entry::operator!=):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@62678 268f45cc-cd09-0410-ab3c-d52691b4dbfc
WebCore/ChangeLog
WebCore/html/HTMLFormattingElementList.cpp
WebCore/html/HTMLFormattingElementList.h