Index: Source/core/rendering/line/LineWidth.cpp |
diff --git a/Source/core/rendering/line/LineWidth.cpp b/Source/core/rendering/line/LineWidth.cpp |
index 7d763358f5e5ceef2d0a7bad3c66758c4271fb5e..fe51d904433a7cbd9e21a4e6a11cb16c1be2125c 100644 |
--- a/Source/core/rendering/line/LineWidth.cpp |
+++ b/Source/core/rendering/line/LineWidth.cpp |
@@ -66,17 +66,17 @@ void LineWidth::shrinkAvailableWidthForNewFloatIfNeeded(FloatingObject* newFloat |
if (height < m_block.logicalTopForFloat(newFloat) || height >= m_block.logicalBottomForFloat(newFloat)) |
return; |
- ShapeOutsideInfo* shapeOutsideInfo = newFloat->renderer()->shapeOutsideInfo(); |
- if (shapeOutsideInfo) { |
+ ShapeOutsideDeltas shapeDeltas; |
+ if (ShapeOutsideInfo* shapeOutsideInfo = newFloat->renderer()->shapeOutsideInfo()) { |
LayoutUnit lineHeight = m_block.lineHeight(m_isFirstLine, m_block.isHorizontalWritingMode() ? HorizontalLine : VerticalLine, PositionOfInteriorLineBoxes); |
- shapeOutsideInfo->updateDeltasForContainingBlockLine(m_block, *newFloat, m_block.logicalHeight(), lineHeight); |
+ shapeDeltas = shapeOutsideInfo->computeDeltasForContainingBlockLine(m_block, *newFloat, m_block.logicalHeight(), lineHeight); |
} |
if (newFloat->type() == FloatingObject::FloatLeft) { |
float newLeft = m_block.logicalRightForFloat(newFloat).toFloat(); |
- if (shapeOutsideInfo) { |
- if (shapeOutsideInfo->lineOverlapsShape()) |
- newLeft += shapeOutsideInfo->rightMarginBoxDelta(); |
+ if (shapeDeltas.isValid()) { |
+ if (shapeDeltas.lineOverlapsShape()) |
+ newLeft += shapeDeltas.rightMarginBoxDelta(); |
else // Per the CSS Shapes spec, If the line doesn't overlap the shape, then ignore this shape for this line. |
newLeft = m_left; |
} |
@@ -85,9 +85,9 @@ void LineWidth::shrinkAvailableWidthForNewFloatIfNeeded(FloatingObject* newFloat |
m_left = std::max<float>(m_left, newLeft); |
} else { |
float newRight = m_block.logicalLeftForFloat(newFloat).toFloat(); |
- if (shapeOutsideInfo) { |
- if (shapeOutsideInfo->lineOverlapsShape()) |
- newRight += shapeOutsideInfo->leftMarginBoxDelta(); |
+ if (shapeDeltas.isValid()) { |
+ if (shapeDeltas.lineOverlapsShape()) |
+ newRight += shapeDeltas.leftMarginBoxDelta(); |
else // Per the CSS Shapes spec, If the line doesn't overlap the shape, then ignore this shape for this line. |
newRight = m_right; |
} |