Changeset 246062 in webkit
- Timestamp:
- Jun 4, 2019 7:54:52 AM (5 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r246061 r246062 1 2019-06-04 Zalan Bujtas <zalan@apple.com> 2 3 [LFC][IFC] Remove redundant InlineItem::width() calls. 4 https://bugs.webkit.org/show_bug.cgi?id=198489 5 <rdar://problem/51360390> 6 7 Reviewed by Antti Koivisto. 8 9 This is in preparation for removing InlineItem::width(). 10 11 * layout/inlineformatting/InlineFormattingContextLineLayout.cpp: 12 (WebCore::Layout::InlineFormattingContext::LineLayout::handleFloat const): 13 (WebCore::Layout::InlineFormattingContext::LineLayout::commitInlineItemToLine const): 14 * layout/inlineformatting/InlineLine.cpp: 15 (WebCore::Layout::Line::appendNonBreakableSpace): 16 (WebCore::Layout::Line::appendInlineContainerStart): 17 (WebCore::Layout::Line::appendInlineContainerEnd): 18 * layout/inlineformatting/InlineLine.h: 19 1 20 2019-06-04 Antoine Quint <graouts@apple.com> 2 21 -
trunk/Source/WebCore/layout/inlineformatting/InlineFormattingContextLineLayout.cpp
r245970 r246062 341 341 m_floatingState.append(floatBox); 342 342 // Shrink availble space for current line and move existing inline runs. 343 auto floatBoxWidth = floatItem.width();343 auto floatBoxWidth = displayBox.marginBoxWidth(); 344 344 floatBox.isLeftFloatingPositioned() ? line.moveLogicalLeft(floatBoxWidth) : line.moveLogicalRight(floatBoxWidth); 345 345 } … … 347 347 void InlineFormattingContext::LineLayout::commitInlineItemToLine(Line& line, const InlineItem& inlineItem) const 348 348 { 349 if (inlineItem.isContainerStart())350 return line.appendInlineContainerStart(inlineItem);351 352 if (inlineItem.isContainerEnd())353 return line.appendInlineContainerEnd(inlineItem);354 355 349 if (inlineItem.isHardLineBreak()) 356 350 return line.appendHardLineBreak(inlineItem); 357 351 358 352 auto width = inlineItem.width(); 353 auto& fontMetrics = inlineItem.style().fontMetrics(); 359 354 if (is<InlineTextItem>(inlineItem)) 360 return line.appendTextContent(downcast<InlineTextItem>(inlineItem), { width, inlineItem.style().fontMetrics().height() });355 return line.appendTextContent(downcast<InlineTextItem>(inlineItem), { width, fontMetrics.height() }); 361 356 362 357 auto& layoutBox = inlineItem.layoutBox(); 363 358 auto& displayBox = layoutState().displayBoxForLayoutBox(layoutBox); 359 360 if (inlineItem.isContainerStart()) { 361 auto containerHeight = fontMetrics.height() + displayBox.verticalBorder() + displayBox.verticalPadding().valueOr(0); 362 return line.appendInlineContainerStart(inlineItem, { width, containerHeight }); 363 } 364 365 if (inlineItem.isContainerEnd()) 366 return line.appendInlineContainerEnd(inlineItem, { width, 0 }); 367 364 368 if (layoutBox.isReplaced()) 365 369 return line.appendReplacedInlineBox(inlineItem, { width, displayBox.height() }); -
trunk/Source/WebCore/layout/inlineformatting/InlineLine.cpp
r245962 r246062 117 117 { 118 118 m_content->runs().append(std::make_unique<Content::Run>(Display::Run { logicalRect }, inlineItem, false, false)); 119 m_contentLogicalWidth += inlineItem.width();120 } 121 122 void Line::appendInlineContainerStart(const InlineItem& inlineItem )119 m_contentLogicalWidth += logicalRect.width(); 120 } 121 122 void Line::appendInlineContainerStart(const InlineItem& inlineItem, LayoutSize runSize) 123 123 { 124 124 auto& layoutBox = inlineItem.layoutBox(); … … 138 138 alignAndAdjustLineHeight(); 139 139 auto& displayBox = m_layoutState.displayBoxForLayoutBox(layoutBox); 140 auto containerHeight = fontMetrics.height() + displayBox.verticalBorder() + displayBox.verticalPadding().valueOr(0);141 140 auto logicalTop = -fontMetrics.ascent() - displayBox.borderTop() - displayBox.paddingTop().valueOr(0); 142 auto logicalRect = Display::Rect { logicalTop, contentLogicalRight(), inlineItem.width(), containerHeight};141 auto logicalRect = Display::Rect { logicalTop, contentLogicalRight(), runSize.width(), runSize.height() }; 143 142 appendNonBreakableSpace(inlineItem, logicalRect); 144 143 } 145 144 146 void Line::appendInlineContainerEnd(const InlineItem& inlineItem )145 void Line::appendInlineContainerEnd(const InlineItem& inlineItem, LayoutSize runSize) 147 146 { 148 147 // This is really just a placeholder to mark the end of the inline level container. 149 auto logicalRect = Display::Rect { 0, contentLogicalRight(), inlineItem.width(), 0};148 auto logicalRect = Display::Rect { 0, contentLogicalRight(), runSize.width(), runSize.height() }; 150 149 appendNonBreakableSpace(inlineItem, logicalRect); 151 150 } -
trunk/Source/WebCore/layout/inlineformatting/InlineLine.h
r245962 r246062 79 79 void appendNonReplacedInlineBox(const InlineItem&, LayoutSize); 80 80 void appendReplacedInlineBox(const InlineItem&, LayoutSize); 81 void appendInlineContainerStart(const InlineItem& );82 void appendInlineContainerEnd(const InlineItem& );81 void appendInlineContainerStart(const InlineItem&, LayoutSize); 82 void appendInlineContainerEnd(const InlineItem&, LayoutSize); 83 83 void appendHardLineBreak(const InlineItem&); 84 84
Note: See TracChangeset
for help on using the changeset viewer.