diff options
Diffstat (limited to 'xmloff/source/core/attrlist.cxx')
-rw-r--r-- | xmloff/source/core/attrlist.cxx | 36 |
1 files changed, 14 insertions, 22 deletions
diff --git a/xmloff/source/core/attrlist.cxx b/xmloff/source/core/attrlist.cxx index 5673d66f9d93..e58707c6953c 100644 --- a/xmloff/source/core/attrlist.cxx +++ b/xmloff/source/core/attrlist.cxx @@ -113,13 +113,12 @@ OUString SAL_CALL SvXMLAttributeList::getTypeByName( const OUString& ) OUString SAL_CALL SvXMLAttributeList::getValueByName(const OUString& sName) { - ::std::vector<struct SvXMLTagAttribute_Impl>::iterator ii = m_pImpl->vecAttribute.begin(); + auto ii = std::find_if(m_pImpl->vecAttribute.begin(), m_pImpl->vecAttribute.end(), + [&sName](struct SvXMLTagAttribute_Impl& rAttr) { return rAttr.sName == sName; }); + + if (ii != m_pImpl->vecAttribute.end()) + return (*ii).sValue; - for( ; ii != m_pImpl->vecAttribute.end() ; ++ii ) { - if( (*ii).sName == sName ) { - return (*ii).sValue; - } - } return OUString(); } @@ -158,14 +157,11 @@ void SvXMLAttributeList::Clear() void SvXMLAttributeList::RemoveAttribute( const OUString& sName ) { - ::std::vector<struct SvXMLTagAttribute_Impl>::iterator ii = m_pImpl->vecAttribute.begin(); + auto ii = std::find_if(m_pImpl->vecAttribute.begin(), m_pImpl->vecAttribute.end(), + [&sName](struct SvXMLTagAttribute_Impl& rAttr) { return rAttr.sName == sName; }); - for( ; ii != m_pImpl->vecAttribute.end() ; ++ii ) { - if( (*ii).sName == sName ) { - m_pImpl->vecAttribute.erase( ii ); - break; - } - } + if (ii != m_pImpl->vecAttribute.end()) + m_pImpl->vecAttribute.erase( ii ); } void SvXMLAttributeList::AppendAttributeList( const uno::Reference< css::xml::sax::XAttributeList > &r ) @@ -215,16 +211,12 @@ void SvXMLAttributeList::RenameAttributeByIndex( sal_Int16 i, sal_Int16 SvXMLAttributeList::GetIndexByName( const OUString& rName ) const { - ::std::vector<struct SvXMLTagAttribute_Impl>::iterator ii = - m_pImpl->vecAttribute.begin(); + auto ii = std::find_if(m_pImpl->vecAttribute.begin(), m_pImpl->vecAttribute.end(), + [&rName](struct SvXMLTagAttribute_Impl& rAttr) { return rAttr.sName == rName; }); + + if (ii != m_pImpl->vecAttribute.end()) + return static_cast<sal_Int16>(std::distance(m_pImpl->vecAttribute.begin(), ii)); - for( sal_Int16 nIndex=0; ii!=m_pImpl->vecAttribute.end(); ++ii, ++nIndex ) - { - if( (*ii).sName == rName ) - { - return nIndex; - } - } return -1; } |