Title: [276202] trunk/Source/WebCore
Revision
276202
Author
[email protected]
Date
2021-04-17 11:22:35 -0700 (Sat, 17 Apr 2021)

Log Message

[Cleanup] Modernize TrailingObjects
https://bugs.webkit.org/show_bug.cgi?id=224712

Reviewed by Antti Koivisto.

Remove redundant c'tor and start using enum class.

* rendering/line/BreakingContext.h:
(WebCore::BreakingContext::handleText):
(WebCore::checkWhitespaceCollapsingTransitions):
(WebCore::BreakingContext::handleEndOfLine):
* rendering/line/TrailingObjects.cpp:
(WebCore::TrailingObjects::updateWhitespaceCollapsingTransitionsForTrailingBoxes):
* rendering/line/TrailingObjects.h:
(WebCore::TrailingObjects::setTrailingWhitespace):
(WebCore::TrailingObjects::clear):
(WebCore::TrailingObjects::TrailingObjects): Deleted.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (276201 => 276202)


--- trunk/Source/WebCore/ChangeLog	2021-04-17 15:38:31 UTC (rev 276201)
+++ trunk/Source/WebCore/ChangeLog	2021-04-17 18:22:35 UTC (rev 276202)
@@ -1,5 +1,25 @@
 2021-04-17  Zalan Bujtas  <[email protected]>
 
+        [Cleanup] Modernize TrailingObjects
+        https://bugs.webkit.org/show_bug.cgi?id=224712
+
+        Reviewed by Antti Koivisto.
+
+        Remove redundant c'tor and start using enum class.
+
+        * rendering/line/BreakingContext.h:
+        (WebCore::BreakingContext::handleText):
+        (WebCore::checkWhitespaceCollapsingTransitions):
+        (WebCore::BreakingContext::handleEndOfLine):
+        * rendering/line/TrailingObjects.cpp:
+        (WebCore::TrailingObjects::updateWhitespaceCollapsingTransitionsForTrailingBoxes):
+        * rendering/line/TrailingObjects.h:
+        (WebCore::TrailingObjects::setTrailingWhitespace):
+        (WebCore::TrailingObjects::clear):
+        (WebCore::TrailingObjects::TrailingObjects): Deleted.
+
+2021-04-17  Zalan Bujtas  <[email protected]>
+
         [Cleanup] BreakingContext::handleText should consistently use the cached renderer
         https://bugs.webkit.org/show_bug.cgi?id=224711
 

Modified: trunk/Source/WebCore/rendering/line/BreakingContext.h (276201 => 276202)


--- trunk/Source/WebCore/rendering/line/BreakingContext.h	2021-04-17 15:38:31 UTC (rev 276201)
+++ trunk/Source/WebCore/rendering/line/BreakingContext.h	2021-04-17 18:22:35 UTC (rev 276202)
@@ -980,7 +980,7 @@
                     // spaces. Create a transition to terminate the run
                     // before the second space.
                     m_lineWhitespaceCollapsingState.startIgnoringSpaces(m_startOfIgnoredSpaces);
-                    m_trailingObjects.updateWhitespaceCollapsingTransitionsForTrailingBoxes(m_lineWhitespaceCollapsingState, InlineIterator(), TrailingObjects::DoNotCollapseFirstSpace);
+                    m_trailingObjects.updateWhitespaceCollapsingTransitionsForTrailingBoxes(m_lineWhitespaceCollapsingState, InlineIterator(), TrailingObjects::CollapseFirstSpace::No);
                 }
             }
             // Measuring the width of complex text character-by-character, rather than measuring it all together,
@@ -1185,7 +1185,7 @@
     }
 }
 
-inline TrailingObjects::CollapseFirstSpaceOrNot checkWhitespaceCollapsingTransitions(LineWhitespaceCollapsingState& lineWhitespaceCollapsingState, const InlineIterator& lBreak)
+inline TrailingObjects::CollapseFirstSpace checkWhitespaceCollapsingTransitions(LineWhitespaceCollapsingState& lineWhitespaceCollapsingState, const InlineIterator& lBreak)
 {
     // Check to see if our last transition is a start point beyond the line break. If so,
     // shave it off the list, and shave off a trailing space if the previous end point doesn't
@@ -1202,11 +1202,11 @@
             lineWhitespaceCollapsingState.decrementNumTransitions();
             if (endpoint.renderer()->style().collapseWhiteSpace() && endpoint.renderer()->isText()) {
                 lineWhitespaceCollapsingState.decrementTransitionAt(lineWhitespaceCollapsingState.numTransitions() - 1);
-                return TrailingObjects::DoNotCollapseFirstSpace;
+                return TrailingObjects::CollapseFirstSpace::No;
             }
         }
     }
-    return TrailingObjects::CollapseFirstSpace;
+    return TrailingObjects::CollapseFirstSpace::Yes;
 }
 
 inline InlineIterator BreakingContext::handleEndOfLine()
@@ -1240,8 +1240,7 @@
     }
 
     // Sanity check our whitespace collapsing transitions.
-    TrailingObjects::CollapseFirstSpaceOrNot collapsed = checkWhitespaceCollapsingTransitions(m_lineWhitespaceCollapsingState, m_lineBreak);
-
+    auto collapsed = checkWhitespaceCollapsingTransitions(m_lineWhitespaceCollapsingState, m_lineBreak);
     m_trailingObjects.updateWhitespaceCollapsingTransitionsForTrailingBoxes(m_lineWhitespaceCollapsingState, m_lineBreak, collapsed);
 
     // We might have made lineBreak an iterator that points past the end

Modified: trunk/Source/WebCore/rendering/line/TrailingObjects.cpp (276201 => 276202)


--- trunk/Source/WebCore/rendering/line/TrailingObjects.cpp	2021-04-17 15:38:31 UTC (rev 276201)
+++ trunk/Source/WebCore/rendering/line/TrailingObjects.cpp	2021-04-17 18:22:35 UTC (rev 276202)
@@ -29,7 +29,7 @@
 
 namespace WebCore {
 
-void TrailingObjects::updateWhitespaceCollapsingTransitionsForTrailingBoxes(LineWhitespaceCollapsingState& lineWhitespaceCollapsingState, const InlineIterator& lBreak, CollapseFirstSpaceOrNot collapseFirstSpace)
+void TrailingObjects::updateWhitespaceCollapsingTransitionsForTrailingBoxes(LineWhitespaceCollapsingState& lineWhitespaceCollapsingState, const InlineIterator& lBreak, CollapseFirstSpace collapseFirstSpace)
 {
     if (!m_whitespace)
         return;
@@ -41,7 +41,7 @@
         int trailingSpaceTransition = lineWhitespaceCollapsingState.numTransitions() - 1;
         for ( ; trailingSpaceTransition > 0 && lineWhitespaceCollapsingState.transitions()[trailingSpaceTransition].renderer() != m_whitespace; --trailingSpaceTransition) { }
         ASSERT(trailingSpaceTransition >= 0);
-        if (collapseFirstSpace == CollapseFirstSpace)
+        if (collapseFirstSpace == CollapseFirstSpace::Yes)
             lineWhitespaceCollapsingState.decrementTransitionAt(trailingSpaceTransition);
 
         // Now make sure every single trailingPositionedBox following the trailingSpaceTransition properly stops and starts
@@ -59,7 +59,7 @@
         }
     } else if (!lBreak.renderer()) {
         ASSERT(m_whitespace->isText());
-        ASSERT(collapseFirstSpace == CollapseFirstSpace);
+        ASSERT(collapseFirstSpace == CollapseFirstSpace::Yes);
         // Add a new end transition that stops right at the very end.
         unsigned length = m_whitespace->text().length();
         unsigned pos = length >= 2 ? length - 2 : UINT_MAX;

Modified: trunk/Source/WebCore/rendering/line/TrailingObjects.h (276201 => 276202)


--- trunk/Source/WebCore/rendering/line/TrailingObjects.h	2021-04-17 15:38:31 UTC (rev 276201)
+++ trunk/Source/WebCore/rendering/line/TrailingObjects.h	2021-04-17 18:22:35 UTC (rev 276202)
@@ -43,18 +43,10 @@
 
 class TrailingObjects {
 public:
-    TrailingObjects()
-        : m_whitespace(0)
-    { }
-
-    void setTrailingWhitespace(RenderText& whitespace)
-    {
-        m_whitespace = &whitespace;
-    }
-
+    void setTrailingWhitespace(RenderText& whitespace) { m_whitespace = &whitespace; }
     void clear()
     {
-        m_whitespace = 0;
+        m_whitespace = { };
         m_boxes.shrink(0); // Use shrink(0) instead of clear() to retain our capacity.
     }
 
@@ -64,12 +56,11 @@
             m_boxes.append(box);
     }
 
-    enum CollapseFirstSpaceOrNot { DoNotCollapseFirstSpace, CollapseFirstSpace };
+    enum class CollapseFirstSpace { No, Yes };
+    void updateWhitespaceCollapsingTransitionsForTrailingBoxes(LineWhitespaceCollapsingState&, const InlineIterator& lBreak, CollapseFirstSpace);
 
-    void updateWhitespaceCollapsingTransitionsForTrailingBoxes(LineWhitespaceCollapsingState&, const InlineIterator& lBreak, CollapseFirstSpaceOrNot);
-
 private:
-    RenderText* m_whitespace;
+    RenderText* m_whitespace { nullptr };
     Vector<std::reference_wrapper<RenderBoxModelObject>, 4> m_boxes;
 };
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to