[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc
abarth at webkit.org
abarth at webkit.org
Wed Dec 22 11:27:09 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit 6403f7ea266d1927ef4370006957343f88b18270
Author: abarth at webkit.org <abarth at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Sat Jul 24 17:33:12 2010 +0000
2010-07-24 Adam Barth <abarth at webkit.org>
Reviewed by Eric Seidel.
Save a per-character branch in the HTML parser
https://bugs.webkit.org/show_bug.cgi?id=42921
The parsing benchmark claims this is a wash, but it makes me feel
better.
* html/HTMLToken.h:
(WebCore::HTMLToken::clear):
(WebCore::HTMLToken::beginStartTag):
(WebCore::HTMLToken::beginEndTag):
(WebCore::HTMLToken::ensureIsCharacterToken):
(WebCore::HTMLToken::beginComment):
(WebCore::HTMLToken::beginDOCTYPE):
* html/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::bufferCharacter):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@64010 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index c8ce79d..e3dfb70 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,23 @@
+2010-07-24 Adam Barth <abarth at webkit.org>
+
+ Reviewed by Eric Seidel.
+
+ Save a per-character branch in the HTML parser
+ https://bugs.webkit.org/show_bug.cgi?id=42921
+
+ The parsing benchmark claims this is a wash, but it makes me feel
+ better.
+
+ * html/HTMLToken.h:
+ (WebCore::HTMLToken::clear):
+ (WebCore::HTMLToken::beginStartTag):
+ (WebCore::HTMLToken::beginEndTag):
+ (WebCore::HTMLToken::ensureIsCharacterToken):
+ (WebCore::HTMLToken::beginComment):
+ (WebCore::HTMLToken::beginDOCTYPE):
+ * html/HTMLTokenizer.cpp:
+ (WebCore::HTMLTokenizer::bufferCharacter):
+
2010-07-23 Patrick Gansterer <paroga at paroga.com>
Reviewed by Darin Adler.
diff --git a/WebCore/html/HTMLToken.h b/WebCore/html/HTMLToken.h
index 407e5d7..8465a35 100644
--- a/WebCore/html/HTMLToken.h
+++ b/WebCore/html/HTMLToken.h
@@ -59,6 +59,7 @@ public:
void clear()
{
m_type = Uninitialized;
+ m_data.clear();
}
void makeEndOfFile()
@@ -72,7 +73,6 @@ public:
ASSERT(character);
ASSERT(m_type == Uninitialized);
m_type = StartTag;
- m_data.clear();
m_selfClosing = false;
m_currentAttribute = 0;
m_attributes.clear();
@@ -85,7 +85,6 @@ public:
{
ASSERT(m_type == Uninitialized);
m_type = EndTag;
- m_data.clear();
m_selfClosing = false;
m_currentAttribute = 0;
m_attributes.clear();
@@ -93,27 +92,24 @@ public:
m_data.append(characters);
}
- void beginCharacter(UChar character)
+ // Starting a character token works slightly differently than starting
+ // other types of tokens because we want to save a per-character branch.
+ void ensureIsCharacterToken()
{
- ASSERT(character);
- ASSERT(m_type == Uninitialized);
+ ASSERT(m_type == Uninitialized || m_type == Character);
m_type = Character;
- m_data.clear();
- m_data.append(character);
}
void beginComment()
{
ASSERT(m_type == Uninitialized);
m_type = Comment;
- m_data.clear();
}
void beginDOCTYPE()
{
ASSERT(m_type == Uninitialized);
m_type = DOCTYPE;
- m_data.clear();
m_doctypeData.set(new DoctypeData());
}
diff --git a/WebCore/html/HTMLTokenizer.cpp b/WebCore/html/HTMLTokenizer.cpp
index 55fd1ca..3829580 100644
--- a/WebCore/html/HTMLTokenizer.cpp
+++ b/WebCore/html/HTMLTokenizer.cpp
@@ -1608,10 +1608,7 @@ inline bool HTMLTokenizer::isAppropriateEndTag()
inline void HTMLTokenizer::bufferCharacter(UChar character)
{
ASSERT(character != InputStreamPreprocessor::endOfFileMarker);
- if (m_token->type() != HTMLToken::Character) {
- m_token->beginCharacter(character);
- return;
- }
+ m_token->ensureIsCharacterToken();
m_token->appendToCharacter(character);
}
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list