Title: [250089] trunk/Source/WebCore
Revision
250089
Author
za...@apple.com
Date
2019-09-19 07:58:43 -0700 (Thu, 19 Sep 2019)

Log Message

[LFC][IFC] InlineFormattingContext::InlineLayout should not need to call LayoutState::establishedFormattingState
https://bugs.webkit.org/show_bug.cgi?id=201972
<rdar://problem/55505869>

Reviewed by Antti Koivisto.

InlineLayout has access to InlineFormattingContext, so it should just query it instead of calling LayoutState::establishedFormattingState.

* layout/inlineformatting/InlineFormattingContext.h:
(WebCore::Layout::InlineFormattingContext::InlineLayout::formattingContext const):
(WebCore::Layout::InlineFormattingContext::InlineLayout::formattingState):
* layout/inlineformatting/InlineFormattingContextLineLayout.cpp:
(WebCore::Layout::InlineFormattingContext::InlineLayout::InlineLayout):
(WebCore::Layout::InlineFormattingContext::InlineLayout::layout):
(WebCore::Layout::InlineFormattingContext::InlineLayout::createDisplayRuns):
(WebCore::Layout::InlineFormattingContext::InlineLayout::layout const): Deleted.
(WebCore::Layout::InlineFormattingContext::InlineLayout::createDisplayRuns const): Deleted.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (250088 => 250089)


--- trunk/Source/WebCore/ChangeLog	2019-09-19 13:25:46 UTC (rev 250088)
+++ trunk/Source/WebCore/ChangeLog	2019-09-19 14:58:43 UTC (rev 250089)
@@ -1,5 +1,25 @@
 2019-09-19  Zalan Bujtas  <za...@apple.com>
 
+        [LFC][IFC] InlineFormattingContext::InlineLayout should not need to call LayoutState::establishedFormattingState
+        https://bugs.webkit.org/show_bug.cgi?id=201972
+        <rdar://problem/55505869>
+
+        Reviewed by Antti Koivisto.
+
+        InlineLayout has access to InlineFormattingContext, so it should just query it instead of calling LayoutState::establishedFormattingState.
+
+        * layout/inlineformatting/InlineFormattingContext.h:
+        (WebCore::Layout::InlineFormattingContext::InlineLayout::formattingContext const):
+        (WebCore::Layout::InlineFormattingContext::InlineLayout::formattingState):
+        * layout/inlineformatting/InlineFormattingContextLineLayout.cpp:
+        (WebCore::Layout::InlineFormattingContext::InlineLayout::InlineLayout):
+        (WebCore::Layout::InlineFormattingContext::InlineLayout::layout):
+        (WebCore::Layout::InlineFormattingContext::InlineLayout::createDisplayRuns):
+        (WebCore::Layout::InlineFormattingContext::InlineLayout::layout const): Deleted.
+        (WebCore::Layout::InlineFormattingContext::InlineLayout::createDisplayRuns const): Deleted.
+
+2019-09-19  Zalan Bujtas  <za...@apple.com>
+
         [LFC] FloatingContext should take the root container.
         https://bugs.webkit.org/show_bug.cgi?id=201968
         <rdar://problem/55505090>

Modified: trunk/Source/WebCore/layout/inlineformatting/InlineFormattingContext.h (250088 => 250089)


--- trunk/Source/WebCore/layout/inlineformatting/InlineFormattingContext.h	2019-09-19 13:25:46 UTC (rev 250088)
+++ trunk/Source/WebCore/layout/inlineformatting/InlineFormattingContext.h	2019-09-19 14:58:43 UTC (rev 250089)
@@ -53,20 +53,21 @@
 
     class InlineLayout {
     public:
-        InlineLayout(const InlineFormattingContext&);
-        void layout(const InlineItems&, LayoutUnit widthConstraint) const;
+        InlineLayout(InlineFormattingContext&);
+        void layout(const InlineItems&, LayoutUnit widthConstraint);
         LayoutUnit computedIntrinsicWidth(const InlineItems&, LayoutUnit widthConstraint) const;
 
     private:
         LayoutState& layoutState() const { return m_inlineFormattingContext.layoutState(); }
-        const InlineFormattingContext& formattingContext() const { return m_inlineFormattingContext; }
+        InlineFormattingContext& formattingContext() const { return m_inlineFormattingContext; }
         const Container& formattingRoot() const { return m_inlineFormattingContext.root(); }
+        InlineFormattingState& formattingState() { return m_inlineFormattingContext.formattingState(); }
         LineContent placeInlineItems(const LineInput&) const;
-        void createDisplayRuns(const Line::Content&, const Vector<WeakPtr<InlineItem>>& floats, LayoutUnit widthConstraint) const;
+        void createDisplayRuns(const Line::Content&, const Vector<WeakPtr<InlineItem>>& floats, LayoutUnit widthConstraint);
         void alignRuns(TextAlignMode, InlineRuns&, unsigned firstRunIndex, LayoutUnit availableWidth) const;
 
     private:
-        const InlineFormattingContext& m_inlineFormattingContext;
+        InlineFormattingContext& m_inlineFormattingContext;
     };
 
     class Quirks : public FormattingContext::Quirks {
@@ -112,6 +113,7 @@
     InlineFormattingState& formattingState() { return downcast<InlineFormattingState>(FormattingContext::formattingState()); }
     // FIXME: Come up with a structure that requires no friending.
     friend class Line;
+    friend class InlineLayout;
 };
 
 inline InlineFormattingContext::Geometry::Geometry(const InlineFormattingContext& inlineFormattingContext)

Modified: trunk/Source/WebCore/layout/inlineformatting/InlineFormattingContextLineLayout.cpp (250088 => 250089)


--- trunk/Source/WebCore/layout/inlineformatting/InlineFormattingContextLineLayout.cpp	2019-09-19 13:25:46 UTC (rev 250088)
+++ trunk/Source/WebCore/layout/inlineformatting/InlineFormattingContextLineLayout.cpp	2019-09-19 14:58:43 UTC (rev 250089)
@@ -269,18 +269,17 @@
 {
 }
 
-InlineFormattingContext::InlineLayout::InlineLayout(const InlineFormattingContext& inlineFormattingContext)
+InlineFormattingContext::InlineLayout::InlineLayout(InlineFormattingContext& inlineFormattingContext)
     : m_inlineFormattingContext(inlineFormattingContext)
 {
 }
 
-void InlineFormattingContext::InlineLayout::layout(const InlineItems& inlineItems, LayoutUnit widthConstraint) const
+void InlineFormattingContext::InlineLayout::layout(const InlineItems& inlineItems, LayoutUnit widthConstraint)
 {
-    auto& layoutState = this->layoutState();
     auto& formattingContext = this->formattingContext();
     auto& formattingRoot = this->formattingRoot();
     auto& formattingRootGeometry = formattingContext.geometryForBox(formattingRoot);
-    auto floatingContext = FloatingContext { formattingRoot, formattingContext, layoutState.establishedFormattingState(formattingRoot).floatingState() };
+    auto floatingContext = FloatingContext { formattingRoot, formattingContext, formattingState().floatingState() };
 
     auto lineLogicalTop = formattingRootGeometry.contentBoxTop();
     auto lineLogicalLeft = formattingRootGeometry.contentBoxLeft();
@@ -357,11 +356,10 @@
     return maximumLineWidth;
 }
 
-void InlineFormattingContext::InlineLayout::createDisplayRuns(const Line::Content& lineContent, const Vector<WeakPtr<InlineItem>>& floats, LayoutUnit widthConstraint) const
+void InlineFormattingContext::InlineLayout::createDisplayRuns(const Line::Content& lineContent, const Vector<WeakPtr<InlineItem>>& floats, LayoutUnit widthConstraint)
 {
-    auto& layoutState = this->layoutState();
     auto& formattingContext = this->formattingContext();
-    auto& formattingState = downcast<InlineFormattingState>(layoutState.establishedFormattingState(formattingRoot()));
+    auto& formattingState = this->formattingState();
     auto floatingContext = FloatingContext { formattingRoot(), formattingContext, formattingState.floatingState() };
 
     // Move floats to their final position.
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to