Chromium Code Reviews| Index: Source/core/svg/SVGAngle.cpp |
| diff --git a/Source/core/svg/SVGAngle.cpp b/Source/core/svg/SVGAngle.cpp |
| index 7e91ef5049b310d911a361c838d39a01af558d6f..5df362520ee8f7470afd91912c58fd70098ab4f5 100644 |
| --- a/Source/core/svg/SVGAngle.cpp |
| +++ b/Source/core/svg/SVGAngle.cpp |
| @@ -117,6 +117,8 @@ float SVGAngle::value() const |
| return grad2deg(m_valueInSpecifiedUnits); |
| case SVG_ANGLETYPE_RAD: |
| return rad2deg(m_valueInSpecifiedUnits); |
| + case SVG_ANGLETYPE_TURN: |
| + return turn2deg(m_valueInSpecifiedUnits); |
| case SVG_ANGLETYPE_UNSPECIFIED: |
| case SVG_ANGLETYPE_UNKNOWN: |
| case SVG_ANGLETYPE_DEG: |
| @@ -136,6 +138,9 @@ void SVGAngle::setValue(float value) |
| case SVG_ANGLETYPE_RAD: |
| m_valueInSpecifiedUnits = deg2rad(value); |
| break; |
| + case SVG_ANGLETYPE_TURN: |
| + m_valueInSpecifiedUnits = deg2turn(value); |
| + break; |
| case SVG_ANGLETYPE_UNSPECIFIED: |
| case SVG_ANGLETYPE_UNKNOWN: |
| case SVG_ANGLETYPE_DEG: |
| @@ -181,6 +186,8 @@ static SVGAngle::SVGAngleType stringToAngleType(const CharType*& ptr, const Char |
| if (firstChar == 'g' && secondChar == 'r' && thirdChar == 'a' && fourthChar == 'd') |
| return SVGAngle::SVG_ANGLETYPE_GRAD; |
| + if (firstChar == 't' && secondChar == 'u' && thirdChar == 'r' && fourthChar == 'n') |
| + return SVGAngle::SVG_ANGLETYPE_TURN; |
| return SVGAngle::SVG_ANGLETYPE_UNKNOWN; |
| } |
| @@ -200,6 +207,10 @@ String SVGAngle::valueAsString() const |
| DEFINE_STATIC_LOCAL(String, gradString, ("grad")); |
| return String::number(m_valueInSpecifiedUnits) + gradString; |
| } |
| + case SVG_ANGLETYPE_TURN: { |
| + DEFINE_STATIC_LOCAL(String, turnString, ("turn")); |
| + return String::number(m_valueInSpecifiedUnits) + turnString; |
| + } |
| case SVG_ANGLETYPE_UNSPECIFIED: |
| case SVG_ANGLETYPE_UNKNOWN: |
| return String::number(m_valueInSpecifiedUnits); |
| @@ -271,6 +282,25 @@ void SVGAngle::convertToSpecifiedUnits(SVGAngleType unitType, ExceptionState& ex |
| return; |
| switch (m_unitType) { |
| + case SVG_ANGLETYPE_TURN: |
| + switch (unitType) { |
| + case SVG_ANGLETYPE_GRAD: |
| + m_valueInSpecifiedUnits = turn2grad(m_valueInSpecifiedUnits); |
| + break; |
| + case SVG_ANGLETYPE_UNSPECIFIED: |
| + case SVG_ANGLETYPE_DEG: |
| + m_valueInSpecifiedUnits = turn2deg(m_valueInSpecifiedUnits); |
| + break; |
| + case SVG_ANGLETYPE_RAD: |
| + m_valueInSpecifiedUnits = deg2rad(turn2deg(m_valueInSpecifiedUnits)); |
| + break; |
| + case SVG_ANGLETYPE_TURN: |
| + break; |
| + case SVG_ANGLETYPE_UNKNOWN: |
| + ASSERT_NOT_REACHED(); |
| + break; |
| + } |
| + break; |
| case SVG_ANGLETYPE_RAD: |
| switch (unitType) { |
| case SVG_ANGLETYPE_GRAD: |
| @@ -280,7 +310,11 @@ void SVGAngle::convertToSpecifiedUnits(SVGAngleType unitType, ExceptionState& ex |
| case SVG_ANGLETYPE_DEG: |
| m_valueInSpecifiedUnits = rad2deg(m_valueInSpecifiedUnits); |
| break; |
| + case SVG_ANGLETYPE_TURN: |
| + m_valueInSpecifiedUnits = deg2turn(rad2deg(m_valueInSpecifiedUnits)); |
| + break; |
| case SVG_ANGLETYPE_RAD: |
| + break; |
| case SVG_ANGLETYPE_UNKNOWN: |
| ASSERT_NOT_REACHED(); |
| break; |
| @@ -295,7 +329,11 @@ void SVGAngle::convertToSpecifiedUnits(SVGAngleType unitType, ExceptionState& ex |
| case SVG_ANGLETYPE_DEG: |
| m_valueInSpecifiedUnits = grad2deg(m_valueInSpecifiedUnits); |
| break; |
| + case SVG_ANGLETYPE_TURN: |
| + m_valueInSpecifiedUnits = grad2turn(m_valueInSpecifiedUnits); |
| + break; |
| case SVG_ANGLETYPE_GRAD: |
| + break; |
| case SVG_ANGLETYPE_UNKNOWN: |
| ASSERT_NOT_REACHED(); |
| break; |
| @@ -311,9 +349,13 @@ void SVGAngle::convertToSpecifiedUnits(SVGAngleType unitType, ExceptionState& ex |
| case SVG_ANGLETYPE_GRAD: |
| m_valueInSpecifiedUnits = deg2grad(m_valueInSpecifiedUnits); |
| break; |
| + case SVG_ANGLETYPE_TURN: |
| + m_valueInSpecifiedUnits = deg2turn(m_valueInSpecifiedUnits); |
| + break; |
| case SVG_ANGLETYPE_UNSPECIFIED: |
| break; |
| case SVG_ANGLETYPE_DEG: |
| + break; |
|
fs
2014/06/03 15:52:48
Nit: This should still be unreachable (due to the
Erik Dahlström (inactive)
2014/06/04 09:28:21
The other cases I agree with, but for this one (du
fs
2014/06/04 11:21:14
Ah, yes, this particular spot had a higher-level f
|
| case SVG_ANGLETYPE_UNKNOWN: |
| ASSERT_NOT_REACHED(); |
| break; |