diff options
author | Noel <noelgrandin@gmail.com> | 2020-12-15 09:38:19 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2020-12-15 10:50:28 +0100 |
commit | a79e6a7cf1ce3be46e4339a54b013ddaa534dd39 (patch) | |
tree | 3de6cf2d804dfe0e929f999103fa1c2c01b9ec53 /starmath | |
parent | 15e4427e8fb56a143caa28b8a3120f3761fc77a5 (diff) |
use views to parse rather than allocating OUString
Change-Id: If0a848c64ce8077d1681661873629c83307cf8b2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107736
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'starmath')
-rw-r--r-- | starmath/source/mathmlimport.cxx | 38 |
1 files changed, 18 insertions, 20 deletions
diff --git a/starmath/source/mathmlimport.cxx b/starmath/source/mathmlimport.cxx index e68184660850..04c4bc6b8837 100644 --- a/starmath/source/mathmlimport.cxx +++ b/starmath/source/mathmlimport.cxx @@ -565,18 +565,19 @@ void SmXMLContext_Helper::RetrieveAttrs( bool bMvFound = false; for (auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList)) { - OUString sValue = aIter.toString(); // sometimes they have namespace, sometimes not? switch (aIter.getToken() & TOKEN_MASK) { case XML_FONTWEIGHT: - nIsBold = sal_Int8(sValue == GetXMLToken(XML_BOLD)); + nIsBold = sal_Int8(IsXMLToken(aIter, XML_BOLD)); break; case XML_FONTSTYLE: - nIsItalic = sal_Int8(sValue == GetXMLToken(XML_ITALIC)); + nIsItalic = sal_Int8(IsXMLToken(aIter, XML_ITALIC)); break; case XML_FONTSIZE: case XML_MATHSIZE: + { + OUString sValue = aIter.toString(); ::sax::Converter::convertDouble(nFontSize, sValue); rContext.GetSmImport().GetMM100UnitConverter().SetXMLMeasureUnit( util::MeasureUnit::POINT); @@ -591,14 +592,15 @@ void SmXMLContext_Helper::RetrieveAttrs( } } break; + } case XML_FONTFAMILY: - sFontFamily = sValue; + sFontFamily = aIter.toString(); break; case XML_COLOR: - sColor = sValue; + sColor = aIter.toString(); break; case XML_MATHCOLOR: - sColor = sValue; + sColor = aIter.toString(); break; case XML_MATHVARIANT: bMvFound = true; @@ -1053,18 +1055,17 @@ void SmXMLFencedContext_Impl::startFastElement( { for (auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList)) { - OUString sValue = aIter.toString(); switch (aIter.getToken()) { //temp, starmath cannot handle multichar brackets (I think) case XML_OPEN: - cBegin = sValue[0]; + cBegin = aIter.toString()[0]; break; case XML_CLOSE: - cEnd = sValue[0]; + cEnd = aIter.toString()[0]; break; case XML_STRETCHY: - bIsStretchy = sValue == GetXMLToken(XML_TRUE); + bIsStretchy = IsXMLToken(aIter, XML_TRUE); break; default: XMLOFF_WARN_UNKNOWN("starmath", aIter); @@ -1210,12 +1211,11 @@ void SmXMLAnnotationContext_Impl::startFastElement( { for (auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList)) { - OUString sValue = aIter.toString(); // sometimes they have namespace, sometimes not? switch (aIter.getToken() & TOKEN_MASK) { case XML_ENCODING: - bIsStarMath = sValue == "StarMath 5.0"; + bIsStarMath = aIter.toView() == "StarMath 5.0"; break; default: XMLOFF_WARN_UNKNOWN("starmath", aIter); @@ -1441,19 +1441,18 @@ void SmXMLOperatorContext_Impl::startFastElement( for (auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList)) { - OUString sValue = aIter.toString(); switch (aIter.getToken()) { case XML_STRETCHY: - bIsStretchy = sValue == GetXMLToken(XML_TRUE); + bIsStretchy = IsXMLToken(aIter, XML_TRUE); break; case XML_FENCE: - bIsFenced = sValue == GetXMLToken(XML_TRUE); + bIsFenced = IsXMLToken(aIter, XML_TRUE); break; case XML_FORM: - isPrefix = sValue == GetXMLToken(XML_PREFIX); // < - isInfix = sValue == GetXMLToken(XML_INFIX); // | - isPostfix = sValue == GetXMLToken(XML_POSTFIX); // > + isPrefix = IsXMLToken(aIter, XML_PREFIX); // < + isInfix = IsXMLToken(aIter, XML_INFIX); // | + isPostfix = IsXMLToken(aIter, XML_POSTFIX); // > break; default: XMLOFF_WARN_UNKNOWN("starmath", aIter); @@ -2494,12 +2493,11 @@ void SmXMLActionContext_Impl::startFastElement( { for (auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList)) { - OUString sValue = aIter.toString(); switch (aIter.getToken()) { case XML_SELECTION: { - sal_uInt32 n = sValue.toUInt32(); + sal_Int32 n = aIter.toInt32(); if (n > 0) mnSelection = static_cast<size_t>(n); } |