Diff
Modified: trunk/Source/WebCore/ChangeLog (270243 => 270244)
--- trunk/Source/WebCore/ChangeLog 2020-11-30 15:08:37 UTC (rev 270243)
+++ trunk/Source/WebCore/ChangeLog 2020-11-30 15:39:37 UTC (rev 270244)
@@ -1,5 +1,21 @@
2020-11-30 Zalan Bujtas <[email protected]>
+ [LFC][IFC] Remove redundant const ContainerBox& formattingContextRoot from LineBuilder c'tor
+ https://bugs.webkit.org/show_bug.cgi?id=219339
+
+ Reviewed by Antti Koivisto.
+
+ * layout/inlineformatting/InlineFormattingContext.cpp:
+ (WebCore::Layout::InlineFormattingContext::lineLayout):
+ (WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthForConstraint const):
+ * layout/inlineformatting/InlineLineBuilder.cpp:
+ (WebCore::Layout::LineBuilder::LineBuilder):
+ (WebCore::Layout::LineBuilder::root const):
+ * layout/inlineformatting/InlineLineBuilder.h:
+ (WebCore::Layout::LineBuilder::root const): Deleted.
+
+2020-11-30 Zalan Bujtas <[email protected]>
+
[LFC][IFC] Preferred width computation is not constrained by existing floats
https://bugs.webkit.org/show_bug.cgi?id=219338
Modified: trunk/Source/WebCore/layout/inlineformatting/InlineFormattingContext.cpp (270243 => 270244)
--- trunk/Source/WebCore/layout/inlineformatting/InlineFormattingContext.cpp 2020-11-30 15:08:37 UTC (rev 270243)
+++ trunk/Source/WebCore/layout/inlineformatting/InlineFormattingContext.cpp 2020-11-30 15:39:37 UTC (rev 270244)
@@ -152,7 +152,7 @@
auto floatingContext = FloatingContext { *this, formattingState().floatingState() };
auto isFirstLine = formattingState().lines().isEmpty();
- auto lineBuilder = LineBuilder { *this, floatingContext, root(), inlineItems };
+ auto lineBuilder = LineBuilder { *this, floatingContext, inlineItems };
while (!needsLayoutRange.isEmpty()) {
// Turn previous line's overflow content length into the next line's leading content partial length.
// "sp[<-line break->]lit_content" -> overflow length: 11 -> leading partial content length: 11.
@@ -264,7 +264,7 @@
// Preferred width computation is not constrained by floats.
auto floatingState = FloatingState::create(layoutState(), root());
auto floatingContext = FloatingContext { *this, floatingState };
- auto lineBuilder = LineBuilder { *this, floatingContext, root(), inlineItems };
+ auto lineBuilder = LineBuilder { *this, floatingContext, inlineItems };
auto layoutRange = LineBuilder::InlineItemRange { 0 , inlineItems.size() };
auto maximumLineWidth = InlineLayoutUnit { };
while (!layoutRange.isEmpty()) {
Modified: trunk/Source/WebCore/layout/inlineformatting/InlineLineBuilder.cpp (270243 => 270244)
--- trunk/Source/WebCore/layout/inlineformatting/InlineLineBuilder.cpp 2020-11-30 15:08:37 UTC (rev 270243)
+++ trunk/Source/WebCore/layout/inlineformatting/InlineLineBuilder.cpp 2020-11-30 15:39:37 UTC (rev 270244)
@@ -229,10 +229,9 @@
return boxGeometry.marginBoxWidth();
}
-LineBuilder::LineBuilder(const InlineFormattingContext& inlineFormattingContext, const FloatingContext& floatingContext, const ContainerBox& formattingContextRoot, const InlineItems& inlineItems)
+LineBuilder::LineBuilder(const InlineFormattingContext& inlineFormattingContext, const FloatingContext& floatingContext, const InlineItems& inlineItems)
: m_inlineFormattingContext(inlineFormattingContext)
, m_floatingContext(floatingContext)
- , m_formattingContextRoot(formattingContextRoot)
, m_line(inlineFormattingContext)
, m_inlineItems(inlineItems)
{
@@ -700,6 +699,11 @@
return false;
}
+const ContainerBox& LineBuilder::root() const
+{
+ return formattingContext().root();
+}
+
const LayoutState& LineBuilder::layoutState() const
{
return formattingContext().layoutState();
Modified: trunk/Source/WebCore/layout/inlineformatting/InlineLineBuilder.h (270243 => 270244)
--- trunk/Source/WebCore/layout/inlineformatting/InlineLineBuilder.h 2020-11-30 15:08:37 UTC (rev 270243)
+++ trunk/Source/WebCore/layout/inlineformatting/InlineLineBuilder.h 2020-11-30 15:39:37 UTC (rev 270244)
@@ -39,7 +39,7 @@
class LineBuilder {
public:
- LineBuilder(const InlineFormattingContext&, const FloatingContext&, const ContainerBox& formattingContextRoot, const InlineItems&);
+ LineBuilder(const InlineFormattingContext&, const FloatingContext&, const InlineItems&);
struct InlineItemRange {
bool isEmpty() const { return start == end; }
@@ -103,12 +103,11 @@
bool isLastLineWithInlineContent(const InlineItemRange& lineRange, size_t lastInlineItemIndex, bool hasPartialTrailingContent) const;
const InlineFormattingContext& formattingContext() const { return m_inlineFormattingContext; }
- const ContainerBox& root() const { return m_formattingContextRoot; }
+ const ContainerBox& root() const;
const LayoutState& layoutState() const;
const InlineFormattingContext& m_inlineFormattingContext;
const FloatingContext& m_floatingContext;
- const ContainerBox& m_formattingContextRoot;
Line m_line;
InlineLayoutUnit m_horizontalSpaceForLine { 0 };
const InlineItems& m_inlineItems;