Title: [293217] trunk/Source/WebCore
Revision
293217
Author
[email protected]
Date
2022-04-22 05:02:18 -0700 (Fri, 22 Apr 2022)

Log Message

Bail out from text decoration computation if none is requested
https://bugs.webkit.org/show_bug.cgi?id=239641

Reviewed by Tim Nguyen.

* rendering/TextDecorationPainter.cpp:
(WebCore::collectStylesForRenderer):

Also avoid resolving colors unnecessarily.

(WebCore::TextDecorationPainter::stylesForRenderer):
* rendering/style/RenderStyleConstants.cpp:
(WebCore::operator<<):
* rendering/style/RenderStyleConstants.h:

Remove unused 'None' value.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (293216 => 293217)


--- trunk/Source/WebCore/ChangeLog	2022-04-22 11:40:59 UTC (rev 293216)
+++ trunk/Source/WebCore/ChangeLog	2022-04-22 12:02:18 UTC (rev 293217)
@@ -1,3 +1,22 @@
+2022-04-22  Antti Koivisto  <[email protected]>
+
+        Bail out from text decoration computation if none is requested
+        https://bugs.webkit.org/show_bug.cgi?id=239641
+
+        Reviewed by Tim Nguyen.
+
+        * rendering/TextDecorationPainter.cpp:
+        (WebCore::collectStylesForRenderer):
+
+        Also avoid resolving colors unnecessarily.
+
+        (WebCore::TextDecorationPainter::stylesForRenderer):
+        * rendering/style/RenderStyleConstants.cpp:
+        (WebCore::operator<<):
+        * rendering/style/RenderStyleConstants.h:
+
+        Remove unused 'None' value.
+
 2022-04-22  Enrique Ocaña González  <[email protected]>
 
         [MSE] Improve SourceBuffer memory cost reporting

Modified: trunk/Source/WebCore/rendering/TextDecorationPainter.cpp (293216 => 293217)


--- trunk/Source/WebCore/rendering/TextDecorationPainter.cpp	2022-04-22 11:40:59 UTC (rev 293216)
+++ trunk/Source/WebCore/rendering/TextDecorationPainter.cpp	2022-04-22 12:02:18 UTC (rev 293217)
@@ -336,6 +336,9 @@
 static void collectStylesForRenderer(TextDecorationPainter::Styles& result, const RenderObject& renderer, OptionSet<TextDecorationLine> remainingDecorations, bool firstLineStyle, PseudoId pseudoId)
 {
     auto extractDecorations = [&] (const RenderStyle& style, OptionSet<TextDecorationLine> decorations) {
+        if (decorations.isEmpty())
+            return;
+
         auto color = TextDecorationPainter::decorationColor(style);
         auto decorationStyle = style.textDecorationStyle();
 
@@ -354,7 +357,6 @@
             result.linethroughColor = color;
             result.linethroughStyle = decorationStyle;
         }
-
     };
 
     auto styleForRenderer = [&] (const RenderObject& renderer) -> const RenderStyle& {
@@ -407,6 +409,9 @@
 
 auto TextDecorationPainter::stylesForRenderer(const RenderObject& renderer, OptionSet<TextDecorationLine> requestedDecorations, bool firstLineStyle, PseudoId pseudoId) -> Styles
 {
+    if (requestedDecorations.isEmpty())
+        return { };
+
     Styles result;
     collectStylesForRenderer(result, renderer, requestedDecorations, false, pseudoId);
     if (firstLineStyle)

Modified: trunk/Source/WebCore/rendering/style/RenderStyleConstants.cpp (293216 => 293217)


--- trunk/Source/WebCore/rendering/style/RenderStyleConstants.cpp	2022-04-22 11:40:59 UTC (rev 293216)
+++ trunk/Source/WebCore/rendering/style/RenderStyleConstants.cpp	2022-04-22 12:02:18 UTC (rev 293217)
@@ -1006,7 +1006,6 @@
 TextStream& operator<<(TextStream& ts, TextDecorationLine line)
 {
     switch (line) {
-    case TextDecorationLine::None: ts << "none"; break;
     case TextDecorationLine::Underline: ts << "underline"; break;
     case TextDecorationLine::Overline: ts << "overline"; break;
     case TextDecorationLine::LineThrough: ts << "line-through"; break;

Modified: trunk/Source/WebCore/rendering/style/RenderStyleConstants.h (293216 => 293217)


--- trunk/Source/WebCore/rendering/style/RenderStyleConstants.h	2022-04-22 11:40:59 UTC (rev 293216)
+++ trunk/Source/WebCore/rendering/style/RenderStyleConstants.h	2022-04-22 12:02:18 UTC (rev 293217)
@@ -738,7 +738,6 @@
 
 static const size_t TextDecorationLineBits = 4;
 enum class TextDecorationLine : uint8_t {
-    None          = 0,
     Underline     = 1 << 0,
     Overline      = 1 << 1,
     LineThrough   = 1 << 2,
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to