| Index: Source/core/svg/SVGPathParser.cpp | 
| diff --git a/Source/core/svg/SVGPathParser.cpp b/Source/core/svg/SVGPathParser.cpp | 
| index 261df8aebede839884bdc4e68040e9d0ffa5ae66..6d9fe45ef132e51e00cd902d7b9bd4052ffefa72 100644 | 
| --- a/Source/core/svg/SVGPathParser.cpp | 
| +++ b/Source/core/svg/SVGPathParser.cpp | 
| @@ -257,23 +257,17 @@ bool SVGPathParser::parseArcToSegment() | 
| // path. This ensures continuity in animations. | 
| rx = fabsf(rx); | 
| ry = fabsf(ry); | 
| -    bool arcIsZeroLength = false; | 
| + | 
| if (m_mode == RelativeCoordinates) | 
| -        arcIsZeroLength = targetPoint == FloatPoint::zero(); | 
| -    else | 
| -        arcIsZeroLength = targetPoint == m_currentPoint; | 
| -    if (!rx || !ry || arcIsZeroLength) { | 
| -        if (m_mode == RelativeCoordinates) | 
| -            m_currentPoint += targetPoint; | 
| -        else | 
| -            m_currentPoint = targetPoint; | 
| -        m_consumer->lineTo(m_currentPoint, AbsoluteCoordinates); | 
| +        targetPoint += m_currentPoint; | 
| + | 
| +    if (!rx || !ry || targetPoint == m_currentPoint) { | 
| +        m_consumer->lineTo(targetPoint, AbsoluteCoordinates); | 
| +        m_currentPoint = targetPoint; | 
| return true; | 
| } | 
|  | 
| FloatPoint point1 = m_currentPoint; | 
| -    if (m_mode == RelativeCoordinates) | 
| -        targetPoint += m_currentPoint; | 
| m_currentPoint = targetPoint; | 
| return decomposeArcToCubic(angle, rx, ry, point1, targetPoint, largeArc, sweep); | 
| } | 
|  |