Title: [295207] trunk/Source/WebCore/html/parser
- Revision
- 295207
- Author
- cdu...@apple.com
- Date
- 2022-06-03 07:41:53 -0700 (Fri, 03 Jun 2022)
Log Message
Optimize HTMLToken::appendToComment()
https://bugs.webkit.org/show_bug.cgi?id=241250
Reviewed by Yusuke Suzuki.
Append several characters at once whenever possible instead of going one
character at a time. Also avoid updating the m_data8BitCheck data member
when the input characters are not UChars.
* Source/WebCore/html/parser/HTMLToken.h:
(WebCore::HTMLToken::appendToComment):
* Source/WebCore/html/parser/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::processToken):
Canonical link: https://commits.webkit.org/251264@main
Modified Paths
Diff
Modified: trunk/Source/WebCore/html/parser/HTMLToken.h (295206 => 295207)
--- trunk/Source/WebCore/html/parser/HTMLToken.h 2022-06-03 14:16:38 UTC (rev 295206)
+++ trunk/Source/WebCore/html/parser/HTMLToken.h 2022-06-03 14:41:53 UTC (rev 295207)
@@ -130,6 +130,8 @@
bool commentIsAll8BitData() const;
void beginComment();
+ void appendToComment(char);
+ void appendToComment(ASCIILiteral);
void appendToComment(UChar);
private:
@@ -407,6 +409,19 @@
m_type = Comment;
}
+inline void HTMLToken::appendToComment(char character)
+{
+ ASSERT(character);
+ ASSERT(m_type == Comment);
+ m_data.append(character);
+}
+
+inline void HTMLToken::appendToComment(ASCIILiteral literal)
+{
+ ASSERT(m_type == Comment);
+ m_data.append(literal.characters8(), literal.length());
+}
+
inline void HTMLToken::appendToComment(UChar character)
{
ASSERT(character);
Modified: trunk/Source/WebCore/html/parser/HTMLTokenizer.cpp (295206 => 295207)
--- trunk/Source/WebCore/html/parser/HTMLTokenizer.cpp 2022-06-03 14:16:38 UTC (rev 295206)
+++ trunk/Source/WebCore/html/parser/HTMLTokenizer.cpp 2022-06-03 14:41:53 UTC (rev 295207)
@@ -1010,8 +1010,7 @@
return emitAndReconsumeInDataState();
}
parseError();
- m_token.appendToComment('-');
- m_token.appendToComment('-');
+ m_token.appendToComment("--"_s);
m_token.appendToComment(character);
ADVANCE_TO(CommentState);
END_STATE()
@@ -1018,9 +1017,7 @@
BEGIN_STATE(CommentEndBangState)
if (character == '-') {
- m_token.appendToComment('-');
- m_token.appendToComment('-');
- m_token.appendToComment('!');
+ m_token.appendToComment("--!"_s);
ADVANCE_PAST_NON_NEWLINE_TO(CommentEndDashState);
}
if (character == '>')
@@ -1029,9 +1026,7 @@
parseError();
return emitAndReconsumeInDataState();
}
- m_token.appendToComment('-');
- m_token.appendToComment('-');
- m_token.appendToComment('!');
+ m_token.appendToComment("--!"_s);
m_token.appendToComment(character);
ADVANCE_TO(CommentState);
END_STATE()
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes