void SVGAngle::setValueAsString(const String& value, ExceptionCode& ec) { if (value.isEmpty()) { m_unitType = SVG_ANGLETYPE_UNSPECIFIED; return; } float valueInSpecifiedUnits = 0; auto upconvertedCharacters = StringView(value).upconvertedCharacters(); const UChar* ptr = upconvertedCharacters; const UChar* end = ptr + value.length(); if (!parseNumber(ptr, end, valueInSpecifiedUnits, false)) { ec = SYNTAX_ERR; return; } SVGAngleType unitType = stringToAngleType(ptr, end); if (unitType == SVG_ANGLETYPE_UNKNOWN) { ec = SYNTAX_ERR; return; } m_unitType = unitType; m_valueInSpecifiedUnits = valueInSpecifiedUnits; }
static bool parseValue(const String& value, float& valueInSpecifiedUnits, SVGAngle::SVGAngleType& unitType) { const CharType* ptr = value.getCharacters<CharType>(); const CharType* end = ptr + value.length(); if (!parseNumber(ptr, end, valueInSpecifiedUnits, false)) return false; unitType = stringToAngleType(ptr, end); if (unitType == SVGAngle::SVG_ANGLETYPE_UNKNOWN) return false; return true; }