comphelper/source/misc/numberedcollection.cxx |   17 +++--------------
 1 file changed, 3 insertions(+), 14 deletions(-)

New commits:
commit 09122ed302fd3d77718ee1a63d2ca4d5d7a0ace8
Author:     Noel Grandin <noel.gran...@collabora.co.uk>
AuthorDate: Fri May 6 13:09:43 2022 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Sat May 7 14:23:51 2022 +0200

    remove dead item cleanup from NumberedCollection::impl_searchFreeNumber
    
    which speeds it up a little, because WeakReferences are a little slow
    
    Change-Id: I76226b180ae4e11c4beb9e2f4ae12b05f980dcad
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133960
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

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;

Reply via email to