diff options
-rw-r--r-- | comphelper/source/misc/numberedcollection.cxx | 17 |
1 files changed, 3 insertions, 14 deletions
diff --git a/comphelper/source/misc/numberedcollection.cxx b/comphelper/source/misc/numberedcollection.cxx index efadf0fd5a6d..59088fe9c6b1 100644 --- a/comphelper/source/misc/numberedcollection.cxx +++ b/comphelper/source/misc/numberedcollection.cxx @@ -180,6 +180,7 @@ OUString SAL_CALL NumberedCollection::getUntitledPrefix() { // create ordered list of all possible numbers. std::vector< ::sal_Int32 > lPossibleNumbers; + lPossibleNumbers.reserve(m_lComponents.size() + 1); ::sal_Int32 c = static_cast<::sal_Int32>(m_lComponents.size ()); ::sal_Int32 i = 1; @@ -190,25 +191,13 @@ OUString SAL_CALL NumberedCollection::getUntitledPrefix() for (i=1; i<=c; ++i) lPossibleNumbers.push_back (i); - TDeadItemList lDeadItems; - - for (const auto& [rComponent, rItem] : m_lComponents) + for (const auto& rPair : m_lComponents) { - const css::uno::Reference< css::uno::XInterface > xItem = rItem.xItem.get(); - - if ( ! xItem.is ()) - { - lDeadItems.push_back(rComponent); - continue; - } - - std::vector< ::sal_Int32 >::iterator pPossible = std::find(lPossibleNumbers.begin (), lPossibleNumbers.end (), rItem.nNumber); + std::vector< ::sal_Int32 >::iterator pPossible = std::find(lPossibleNumbers.begin (), lPossibleNumbers.end (), rPair.second.nNumber); if (pPossible != lPossibleNumbers.end ()) lPossibleNumbers.erase (pPossible); } - impl_cleanUpDeadItems(m_lComponents, lDeadItems); - // a) non free numbers ... return INVALID_NUMBER if (lPossibleNumbers.empty()) return css::frame::UntitledNumbersConst::INVALID_NUMBER; |