From a79e6a7cf1ce3be46e4339a54b013ddaa534dd39 Mon Sep 17 00:00:00 2001 From: Noel Date: Tue, 15 Dec 2020 09:38:19 +0200 Subject: 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 --- reportdesign/source/filter/xml/xmlColumn.cxx | 4 +--- reportdesign/source/filter/xml/xmlComponent.cxx | 4 +--- reportdesign/source/filter/xml/xmlCondPrtExpr.cxx | 4 +--- reportdesign/source/filter/xml/xmlControlProperty.cxx | 8 +++----- reportdesign/source/filter/xml/xmlFormatCondition.cxx | 9 +++------ reportdesign/source/filter/xml/xmlFormattedField.cxx | 4 +--- reportdesign/source/filter/xml/xmlFunction.cxx | 15 ++++++--------- reportdesign/source/filter/xml/xmlGroup.cxx | 12 +++++------- reportdesign/source/filter/xml/xmlImage.cxx | 12 +++++------- reportdesign/source/filter/xml/xmlReport.cxx | 17 +++++++---------- reportdesign/source/filter/xml/xmlReportElement.cxx | 7 ++----- reportdesign/source/filter/xml/xmlSection.cxx | 9 +++------ reportdesign/source/filter/xml/xmlTable.cxx | 15 ++++++--------- 13 files changed, 44 insertions(+), 76 deletions(-) (limited to 'reportdesign/source') diff --git a/reportdesign/source/filter/xml/xmlColumn.cxx b/reportdesign/source/filter/xml/xmlColumn.cxx index f98f6507ffc5..9693ee3ceb0d 100644 --- a/reportdesign/source/filter/xml/xmlColumn.cxx +++ b/reportdesign/source/filter/xml/xmlColumn.cxx @@ -55,12 +55,10 @@ OXMLRowColumn::OXMLRowColumn( ORptFilter& rImport { for (auto &aIter : sax_fastparser::castToFastAttributeList( _xAttrList )) { - OUString sValue = aIter.toString(); - switch( aIter.getToken() ) { case XML_ELEMENT(TABLE, XML_STYLE_NAME): - fillStyle(sValue); + fillStyle(aIter.toString()); break; default: XMLOFF_WARN_UNKNOWN("reportdesign", aIter); diff --git a/reportdesign/source/filter/xml/xmlComponent.cxx b/reportdesign/source/filter/xml/xmlComponent.cxx index ab55e9215bf3..fc87f8da56e6 100644 --- a/reportdesign/source/filter/xml/xmlComponent.cxx +++ b/reportdesign/source/filter/xml/xmlComponent.cxx @@ -42,14 +42,12 @@ OXMLComponent::OXMLComponent( ORptFilter& _rImport for (auto &aIter : sax_fastparser::castToFastAttributeList( _xAttrList )) { - OUString sValue = aIter.toString(); - try { switch( aIter.getToken() ) { case XML_ELEMENT(DRAW, XML_NAME): - m_xComponent->setName(sValue); + m_xComponent->setName(aIter.toString()); break; default: XMLOFF_WARN_UNKNOWN("reportdesign", aIter); diff --git a/reportdesign/source/filter/xml/xmlCondPrtExpr.cxx b/reportdesign/source/filter/xml/xmlCondPrtExpr.cxx index 35167e338095..0ef9c8d98f61 100644 --- a/reportdesign/source/filter/xml/xmlCondPrtExpr.cxx +++ b/reportdesign/source/filter/xml/xmlCondPrtExpr.cxx @@ -43,12 +43,10 @@ OXMLCondPrtExpr::OXMLCondPrtExpr( ORptFilter& _rImport { for (auto &aIter : sax_fastparser::castToFastAttributeList( _xAttrList )) { - OUString sValue = aIter.toString(); - switch( aIter.getToken() ) { case XML_ELEMENT(REPORT, XML_FORMULA): - m_xComponent->setPropertyValue(PROPERTY_CONDITIONALPRINTEXPRESSION,uno::makeAny(ORptFilter::convertFormula(sValue))); + m_xComponent->setPropertyValue(PROPERTY_CONDITIONALPRINTEXPRESSION,uno::makeAny(ORptFilter::convertFormula(aIter.toString()))); break; default: XMLOFF_WARN_UNKNOWN("reportdesign", aIter); diff --git a/reportdesign/source/filter/xml/xmlControlProperty.cxx b/reportdesign/source/filter/xml/xmlControlProperty.cxx index fce0ef4cba11..1bc323d466c1 100644 --- a/reportdesign/source/filter/xml/xmlControlProperty.cxx +++ b/reportdesign/source/filter/xml/xmlControlProperty.cxx @@ -64,12 +64,10 @@ OXMLControlProperty::OXMLControlProperty( ORptFilter& rImport for (auto &aIter : sax_fastparser::castToFastAttributeList( _xAttrList )) { - OUString sValue = aIter.toString(); - switch( aIter.getToken() ) { case XML_ELEMENT(FORM, XML_LIST_PROPERTY): - m_bIsList = sValue == "true"; + m_bIsList = aIter.toView() == "true"; break; case XML_ELEMENT(OOO, XML_VALUE_TYPE): { @@ -88,14 +86,14 @@ OXMLControlProperty::OXMLControlProperty( ORptFilter& rImport { GetXMLToken( XML_VOID) , cppu::UnoType::get() }, }; - const std::map< OUString, css::uno::Type >::const_iterator aTypePos = s_aTypeNameMap.find(sValue); + const std::map< OUString, css::uno::Type >::const_iterator aTypePos = s_aTypeNameMap.find(aIter.toString()); OSL_ENSURE(s_aTypeNameMap.end() != aTypePos, "OXMLControlProperty::OXMLControlProperty: invalid type!"); if (s_aTypeNameMap.end() != aTypePos) m_aPropType = aTypePos->second; } break; case XML_ELEMENT(FORM, XML_PROPERTY_NAME): - m_aSetting.Name = sValue; + m_aSetting.Name = aIter.toString(); break; default: XMLOFF_WARN_UNKNOWN("reportdesign", aIter); diff --git a/reportdesign/source/filter/xml/xmlFormatCondition.cxx b/reportdesign/source/filter/xml/xmlFormatCondition.cxx index 235f6931778f..63aae9301105 100644 --- a/reportdesign/source/filter/xml/xmlFormatCondition.cxx +++ b/reportdesign/source/filter/xml/xmlFormatCondition.cxx @@ -42,23 +42,20 @@ OXMLFormatCondition::OXMLFormatCondition( ORptFilter& rImport, { OSL_ENSURE(m_xComponent.is(),"Component is NULL!"); - static const OUString s_sTRUE = ::xmloff::token::GetXMLToken(XML_TRUE); try { for (auto &aIter : sax_fastparser::castToFastAttributeList( _xAttrList )) { - OUString sValue = aIter.toString(); - switch( aIter.getToken() ) { case XML_ELEMENT(REPORT, XML_ENABLED): - m_xComponent->setEnabled(sValue == s_sTRUE); + m_xComponent->setEnabled(IsXMLToken(aIter, XML_TRUE)); break; case XML_ELEMENT(REPORT, XML_FORMULA): - m_xComponent->setFormula(ORptFilter::convertFormula(sValue)); + m_xComponent->setFormula(ORptFilter::convertFormula(aIter.toString())); break; case XML_ELEMENT(REPORT, XML_STYLE_NAME): - m_sStyleName = sValue; + m_sStyleName = aIter.toString(); break; default: XMLOFF_WARN_UNKNOWN("reportdesign", aIter); diff --git a/reportdesign/source/filter/xml/xmlFormattedField.cxx b/reportdesign/source/filter/xml/xmlFormattedField.cxx index c34f8adf2414..b453dbc4da79 100644 --- a/reportdesign/source/filter/xml/xmlFormattedField.cxx +++ b/reportdesign/source/filter/xml/xmlFormattedField.cxx @@ -43,12 +43,10 @@ OXMLFormattedField::OXMLFormattedField( ORptFilter& rImport { for (auto &aIter : sax_fastparser::castToFastAttributeList( _xAttrList )) { - OUString sValue = aIter.toString(); - switch( aIter.getToken() ) { case XML_ELEMENT(REPORT, XML_FORMULA): - _xComponent->setDataField(ORptFilter::convertFormula(sValue)); + _xComponent->setDataField(ORptFilter::convertFormula(aIter.toString())); break; case XML_ELEMENT(REPORT, XML_SELECT_PAGE): _xComponent->setDataField("rpt:PageNumber()"); diff --git a/reportdesign/source/filter/xml/xmlFunction.cxx b/reportdesign/source/filter/xml/xmlFunction.cxx index 62dcaa9256f7..cd6d072d24ac 100644 --- a/reportdesign/source/filter/xml/xmlFunction.cxx +++ b/reportdesign/source/filter/xml/xmlFunction.cxx @@ -45,30 +45,27 @@ OXMLFunction::OXMLFunction( ORptFilter& _rImport OSL_ENSURE(m_xFunctions.is(),"Functions is NULL!"); m_xFunction = m_xFunctions->createFunction(); - static const OUString s_sTRUE = ::xmloff::token::GetXMLToken(XML_TRUE); for (auto &aIter : sax_fastparser::castToFastAttributeList( _xAttrList )) { - OUString sValue = aIter.toString(); - try { switch( aIter.getToken() ) { case XML_ELEMENT(REPORT, XML_NAME): - m_xFunction->setName(sValue); + m_xFunction->setName(aIter.toString()); break; case XML_ELEMENT(REPORT, XML_FORMULA): - m_xFunction->setFormula(ORptFilter::convertFormula(sValue)); + m_xFunction->setFormula(ORptFilter::convertFormula(aIter.toString())); break; case XML_ELEMENT(REPORT, XML_PRE_EVALUATED): - m_xFunction->setPreEvaluated(sValue == s_sTRUE); + m_xFunction->setPreEvaluated(IsXMLToken(aIter, XML_TRUE)); break; case XML_ELEMENT(REPORT, XML_INITIAL_FORMULA): - if ( !sValue.isEmpty() ) - m_xFunction->setInitialFormula(beans::Optional< OUString>(true,ORptFilter::convertFormula(sValue))); + if ( !aIter.isEmpty() ) + m_xFunction->setInitialFormula(beans::Optional< OUString>(true,ORptFilter::convertFormula(aIter.toString()))); break; case XML_ELEMENT(REPORT, XML_DEEP_TRAVERSING): - m_xFunction->setDeepTraversing(sValue == s_sTRUE); + m_xFunction->setDeepTraversing(IsXMLToken(aIter, XML_TRUE)); break; default: XMLOFF_WARN_UNKNOWN("reportdesign", aIter); diff --git a/reportdesign/source/filter/xml/xmlGroup.cxx b/reportdesign/source/filter/xml/xmlGroup.cxx index 94f6028494ce..b8a8e10abc10 100644 --- a/reportdesign/source/filter/xml/xmlGroup.cxx +++ b/reportdesign/source/filter/xml/xmlGroup.cxx @@ -58,26 +58,24 @@ OXMLGroup::OXMLGroup( ORptFilter& _rImport m_xGroup = m_xGroups->createGroup(); m_xGroup->setSortAscending(false);// the default value has to be set - static const OUString s_sTRUE = ::xmloff::token::GetXMLToken(XML_TRUE); for (auto &aIter : sax_fastparser::castToFastAttributeList( _xAttrList )) { - OUString sValue = aIter.toString(); - try { switch( aIter.getToken() ) { case XML_ELEMENT(REPORT, XML_START_NEW_COLUMN): - m_xGroup->setStartNewColumn(sValue == s_sTRUE); + m_xGroup->setStartNewColumn(IsXMLToken(aIter, XML_TRUE)); break; case XML_ELEMENT(REPORT, XML_RESET_PAGE_NUMBER): - m_xGroup->setResetPageNumber(sValue == s_sTRUE); + m_xGroup->setResetPageNumber(IsXMLToken(aIter, XML_TRUE)); break; case XML_ELEMENT(REPORT, XML_SORT_ASCENDING): - m_xGroup->setSortAscending(sValue == s_sTRUE); + m_xGroup->setSortAscending(IsXMLToken(aIter, XML_TRUE)); break; case XML_ELEMENT(REPORT, XML_GROUP_EXPRESSION): { + OUString sValue = aIter.toString(); sal_Int32 nLen = sValue.getLength(); if ( nLen ) { @@ -156,7 +154,7 @@ OXMLGroup::OXMLGroup( ORptFilter& _rImport } break; case XML_ELEMENT(REPORT, XML_KEEP_TOGETHER): - m_xGroup->setKeepTogether(lcl_getKeepTogetherOption(sValue)); + m_xGroup->setKeepTogether(lcl_getKeepTogetherOption(aIter.toString())); break; default: XMLOFF_WARN_UNKNOWN("reportdesign", aIter); diff --git a/reportdesign/source/filter/xml/xmlImage.cxx b/reportdesign/source/filter/xml/xmlImage.cxx index 9f27b6151e82..d8736f5ca032 100644 --- a/reportdesign/source/filter/xml/xmlImage.cxx +++ b/reportdesign/source/filter/xml/xmlImage.cxx @@ -44,44 +44,42 @@ OXMLImage::OXMLImage( ORptFilter& rImport, { OSL_ENSURE(m_xReportComponent.is(),"Component is NULL!"); - static const OUString s_sTRUE = ::xmloff::token::GetXMLToken(XML_TRUE); try { for (auto &aIter : sax_fastparser::castToFastAttributeList( _xAttrList )) { - OUString sValue = aIter.toString(); - switch( aIter.getToken() ) { case XML_ELEMENT(FORM, XML_IMAGE_DATA): { SvtPathOptions aPathOptions; + OUString sValue = aIter.toString(); sValue = aPathOptions.SubstituteVariable(sValue); _xComponent->setImageURL(rImport.GetAbsoluteReference( sValue )); break; } case XML_ELEMENT(REPORT, XML_PRESERVE_IRI): - _xComponent->setPreserveIRI(s_sTRUE == sValue); + _xComponent->setPreserveIRI(IsXMLToken(aIter, XML_TRUE)); break; case XML_ELEMENT(REPORT, XML_SCALE): { sal_Int16 nRet = awt::ImageScaleMode::NONE; - if ( s_sTRUE == sValue ) + if ( IsXMLToken(aIter, XML_TRUE) ) { nRet = awt::ImageScaleMode::ANISOTROPIC; } else { const SvXMLEnumMapEntry* aXML_EnumMap = OXMLHelper::GetImageScaleOptions(); - bool bConvertOk = SvXMLUnitConverter::convertEnum( nRet, sValue, aXML_EnumMap ); + bool bConvertOk = SvXMLUnitConverter::convertEnum( nRet, aIter.toString(), aXML_EnumMap ); SAL_WARN_IF(!bConvertOk, "reportdesign", "convertEnum failed"); } _xComponent->setScaleMode( nRet ); break; } case XML_ELEMENT(REPORT, XML_FORMULA): - _xComponent->setDataField(ORptFilter::convertFormula(sValue)); + _xComponent->setDataField(ORptFilter::convertFormula(aIter.toString())); break; default: XMLOFF_WARN_UNKNOWN("reportdesign", aIter); diff --git a/reportdesign/source/filter/xml/xmlReport.cxx b/reportdesign/source/filter/xml/xmlReport.cxx index a559946fc848..01a0a2a76765 100644 --- a/reportdesign/source/filter/xml/xmlReport.cxx +++ b/reportdesign/source/filter/xml/xmlReport.cxx @@ -49,42 +49,39 @@ OXMLReport::OXMLReport( ORptFilter& rImport, impl_initRuntimeDefaults(); - static const OUString s_sTRUE = ::xmloff::token::GetXMLToken(XML_TRUE); try { for (auto &aIter : sax_fastparser::castToFastAttributeList( _xAttrList )) { - OUString sValue = aIter.toString(); - switch( aIter.getToken() ) { case XML_ELEMENT(REPORT, XML_COMMAND_TYPE): { sal_Int32 nRet = sdb::CommandType::COMMAND; const SvXMLEnumMapEntry* aXML_EnumMap = OXMLHelper::GetCommandTypeOptions(); - bool bConvertOk = SvXMLUnitConverter::convertEnum( nRet, sValue, aXML_EnumMap ); + bool bConvertOk = SvXMLUnitConverter::convertEnum( nRet, aIter.toString(), aXML_EnumMap ); SAL_WARN_IF(!bConvertOk, "reportdesign", "convertEnum failed"); m_xReportDefinition->setCommandType(nRet); } break; case XML_ELEMENT(REPORT, XML_COMMAND): - m_xReportDefinition->setCommand(sValue); + m_xReportDefinition->setCommand(aIter.toString()); break; case XML_ELEMENT(REPORT, XML_FILTER): - m_xReportDefinition->setFilter(sValue); + m_xReportDefinition->setFilter(aIter.toString()); break; case XML_ELEMENT(REPORT, XML_CAPTION): case XML_ELEMENT(OFFICE, XML_CAPTION): - m_xReportDefinition->setCaption(sValue); + m_xReportDefinition->setCaption(aIter.toString()); break; case XML_ELEMENT(REPORT, XML_ESCAPE_PROCESSING): - m_xReportDefinition->setEscapeProcessing(sValue == s_sTRUE); + m_xReportDefinition->setEscapeProcessing(IsXMLToken(aIter, XML_TRUE)); break; case XML_ELEMENT(OFFICE, XML_MIMETYPE): - m_xReportDefinition->setMimeType(sValue); + m_xReportDefinition->setMimeType(aIter.toString()); break; case XML_ELEMENT(DRAW, XML_NAME): - m_xReportDefinition->setName(sValue); + m_xReportDefinition->setName(aIter.toString()); break; default: XMLOFF_WARN_UNKNOWN("reportdesign", aIter); diff --git a/reportdesign/source/filter/xml/xmlReportElement.cxx b/reportdesign/source/filter/xml/xmlReportElement.cxx index 0c49c9fb47e3..e488fb50a41c 100644 --- a/reportdesign/source/filter/xml/xmlReportElement.cxx +++ b/reportdesign/source/filter/xml/xmlReportElement.cxx @@ -45,20 +45,17 @@ OXMLReportElement::OXMLReportElement( ORptFilter& rImport, OSL_ENSURE(m_xComponent.is(),"Component is NULL!"); - static const OUString s_sTRUE = ::xmloff::token::GetXMLToken(XML_TRUE); try { for (auto &aIter : sax_fastparser::castToFastAttributeList( _xAttrList )) { - OUString sValue = aIter.toString(); - switch( aIter.getToken() ) { case XML_ELEMENT(REPORT, XML_PRINT_WHEN_GROUP_CHANGE): - m_xComponent->setPrintWhenGroupChange(s_sTRUE == sValue); + m_xComponent->setPrintWhenGroupChange(IsXMLToken(aIter, XML_TRUE)); break; case XML_ELEMENT(REPORT, XML_PRINT_REPEATED_VALUES): - m_xComponent->setPrintRepeatedValues(sValue == s_sTRUE); + m_xComponent->setPrintRepeatedValues(IsXMLToken(aIter, XML_TRUE)); break; default: XMLOFF_WARN_UNKNOWN("reportdesign", aIter); diff --git a/reportdesign/source/filter/xml/xmlSection.cxx b/reportdesign/source/filter/xml/xmlSection.cxx index 6e1954ab0456..71a458947fdd 100644 --- a/reportdesign/source/filter/xml/xmlSection.cxx +++ b/reportdesign/source/filter/xml/xmlSection.cxx @@ -55,23 +55,20 @@ OXMLSection::OXMLSection( ORptFilter& rImport, if (!m_xSection.is()) return; - static const OUString s_sTRUE = ::xmloff::token::GetXMLToken(XML_TRUE); try { for (auto &aIter : sax_fastparser::castToFastAttributeList( _xAttrList )) { - OUString sValue = aIter.toString(); - switch( aIter.getToken() ) { case XML_ELEMENT(REPORT, XML_PAGE_PRINT_OPTION): if ( _bPageHeader ) - m_xSection->getReportDefinition()->setPageHeaderOption(lcl_getReportPrintOption(sValue)); + m_xSection->getReportDefinition()->setPageHeaderOption(lcl_getReportPrintOption(aIter.toString())); else - m_xSection->getReportDefinition()->setPageFooterOption(lcl_getReportPrintOption(sValue)); + m_xSection->getReportDefinition()->setPageFooterOption(lcl_getReportPrintOption(aIter.toString())); break; case XML_ELEMENT(REPORT, XML_REPEAT_SECTION): - m_xSection->setRepeatSection(sValue == s_sTRUE ); + m_xSection->setRepeatSection(IsXMLToken(aIter, XML_TRUE)); break; default: XMLOFF_WARN_UNKNOWN("reportdesign", aIter); diff --git a/reportdesign/source/filter/xml/xmlTable.cxx b/reportdesign/source/filter/xml/xmlTable.cxx index 2c3bc48cbdda..f6934e2a3ae6 100644 --- a/reportdesign/source/filter/xml/xmlTable.cxx +++ b/reportdesign/source/filter/xml/xmlTable.cxx @@ -72,32 +72,29 @@ OXMLTable::OXMLTable( ORptFilter& rImport if (!m_xSection.is()) return; - static const OUString s_sTRUE = ::xmloff::token::GetXMLToken(XML_TRUE); try { for (auto &aIter : sax_fastparser::castToFastAttributeList( _xAttrList )) { - OUString sValue = aIter.toString(); - switch( aIter.getToken() ) { case XML_ELEMENT(REPORT, XML_VISIBLE): - m_xSection->setVisible(sValue == s_sTRUE); + m_xSection->setVisible(IsXMLToken(aIter, XML_TRUE)); break; case XML_ELEMENT(REPORT, XML_FORCE_NEW_PAGE): - m_xSection->setForceNewPage(lcl_getForceNewPageOption(sValue)); + m_xSection->setForceNewPage(lcl_getForceNewPageOption(aIter.toString())); break; case XML_ELEMENT(REPORT, XML_FORCE_NEW_COLUMN): - m_xSection->setNewRowOrCol(lcl_getForceNewPageOption(sValue)); + m_xSection->setNewRowOrCol(lcl_getForceNewPageOption(aIter.toString())); break; case XML_ELEMENT(REPORT, XML_KEEP_TOGETHER): - m_xSection->setKeepTogether(sValue == s_sTRUE); + m_xSection->setKeepTogether(IsXMLToken(aIter, XML_TRUE)); break; case XML_ELEMENT(TABLE, XML_NAME): - m_xSection->setName(sValue); + m_xSection->setName(aIter.toString()); break; case XML_ELEMENT(TABLE, XML_STYLE_NAME): - m_sStyleName = sValue; + m_sStyleName = aIter.toString(); break; default: XMLOFF_WARN_UNKNOWN("reportdesign", aIter); -- cgit