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

Reply via email to