| Index: Source/core/layout/shapes/ShapeOutsideInfo.cpp
|
| diff --git a/Source/core/layout/shapes/ShapeOutsideInfo.cpp b/Source/core/layout/shapes/ShapeOutsideInfo.cpp
|
| index 8e2f81d369b722b9b5020478835df591fe79ed71..eea6568ab106225e2a466d08aa62dfbf693359a7 100644
|
| --- a/Source/core/layout/shapes/ShapeOutsideInfo.cpp
|
| +++ b/Source/core/layout/shapes/ShapeOutsideInfo.cpp
|
| @@ -76,6 +76,8 @@ void ShapeOutsideInfo::setReferenceBoxLogicalSize(LayoutSize newReferenceBoxLogi
|
| break;
|
| }
|
|
|
| + newReferenceBoxLogicalSize.clampNegativeToZero();
|
| +
|
| if (m_referenceBoxLogicalSize == newReferenceBoxLogicalSize)
|
| return;
|
| markShapeAsDirty();
|
| @@ -287,7 +289,7 @@ ShapeOutsideDeltas ShapeOutsideInfo::computeDeltasForContainingBlockLine(const L
|
|
|
| if (isShapeDirty() || !m_shapeOutsideDeltas.isForLine(borderBoxLineTop, lineHeight)) {
|
| LayoutUnit referenceBoxLineTop = borderBoxLineTop - logicalTopOffset();
|
| - LayoutUnit floatMarginBoxWidth = containingBlock.logicalWidthForFloat(&floatingObject);
|
| + LayoutUnit floatMarginBoxWidth = std::max(containingBlock.logicalWidthForFloat(&floatingObject), LayoutUnit());
|
|
|
| if (computedShape().lineOverlapsShapeMarginBounds(referenceBoxLineTop, lineHeight)) {
|
| LineSegment segment = computedShape().getExcludedInterval((borderBoxLineTop - logicalTopOffset()), std::min(lineHeight, shapeLogicalBottom() - borderBoxLineTop));
|
|
|