| Index: Source/core/rendering/shapes/PolygonShape.cpp
|
| diff --git a/Source/core/rendering/shapes/PolygonShape.cpp b/Source/core/rendering/shapes/PolygonShape.cpp
|
| index 15fd9bd451b0b58abc4f7dfb467e7225cb9827b2..0160f85b93a2a68304321a31e7120017db12b89b 100644
|
| --- a/Source/core/rendering/shapes/PolygonShape.cpp
|
| +++ b/Source/core/rendering/shapes/PolygonShape.cpp
|
| @@ -69,7 +69,7 @@ float OffsetPolygonEdge::xIntercept(float y) const
|
|
|
| FloatShapeInterval OffsetPolygonEdge::clippedEdgeXRange(float y1, float y2) const
|
| {
|
| - if (!overlapsYRange(y1, y2))
|
| + if (!overlapsYRange(y1, y2) || (y1 == maxY() && vertex2().y() < vertex1().y()))
|
| return FloatShapeInterval();
|
|
|
| if (isWithinYRange(y1, y2))
|
| @@ -135,6 +135,8 @@ void PolygonShape::getExcludedIntervals(LayoutUnit logicalTop, LayoutUnit logica
|
| FloatShapeInterval excludedInterval;
|
| for (unsigned i = 0; i < overlappingEdges.size(); i++) {
|
| const FloatPolygonEdge& edge = *(overlappingEdges[i]);
|
| + if (edge.maxY() == edge.minY())
|
| + continue;
|
| if (!shapeMargin()) {
|
| excludedInterval.unite(OffsetPolygonEdge(edge, FloatSize()).clippedEdgeXRange(y1, y2));
|
| } else {
|
|
|