[Libreoffice-commits] core.git: Branch 'libreoffice-5-2' - forms/source

Noel Grandin noel.grandin at collabora.co.uk
Sun Feb 26 12:01:07 UTC 2017


 forms/source/misc/InterfaceContainer.cxx |   16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

New commits:
commit 1f3ce5a00b2a85374204f3f05433d3cfd3292fe7
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date:   Fri Feb 24 11:24:46 2017 +0200

    better fix for tdf#103830
    
    the first fix in commit 3a404ea870f1eed86f9765447ce0a364d39ae8f8
    did not take into account that this a multimap, not a map.
    
    Thanks to Aron Budea for spotting that.
    
    Change-Id: I86d2d2a9d6cb08fd3cee3965a5b787d5691f0352
    Reviewed-on: https://gerrit.libreoffice.org/34604
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>
    (cherry picked from commit e146741ec96292ef092c6eebfd7fe18fa5ca3cc0)
    Reviewed-on: https://gerrit.libreoffice.org/34606
    (cherry picked from commit 46885644fe87a6e9f86a79b7fd1eafbe3ea0e5a6)
    Reviewed-on: https://gerrit.libreoffice.org/34611

diff --git a/forms/source/misc/InterfaceContainer.cxx b/forms/source/misc/InterfaceContainer.cxx
index 21a49db..051c64f 100644
--- a/forms/source/misc/InterfaceContainer.cxx
+++ b/forms/source/misc/InterfaceContainer.cxx
@@ -679,13 +679,15 @@ throw (css::uno::RuntimeException, std::exception) {
     if (evt.PropertyName == PROPERTY_NAME)
     {
         ::osl::MutexGuard aGuard( m_rMutex );
-        OInterfaceMap::iterator i = m_aMap.find(::comphelper::getString(evt.OldValue));
-        if (i != m_aMap.end() && i->second == evt.Source)
-        {
-            css::uno::Reference<css::uno::XInterface>  xCorrectType(i->second);
-            m_aMap.erase(i);
-            m_aMap.insert(::std::pair<const OUString, css::uno::Reference<css::uno::XInterface> >(::comphelper::getString(evt.NewValue),xCorrectType));
-        }
+        auto range = m_aMap.equal_range(::comphelper::getString(evt.OldValue));
+        for (auto it = range.first; it != range.second; ++it)
+            if (it->second == evt.Source)
+            {
+                css::uno::Reference<css::uno::XInterface>  xCorrectType(it->second);
+                m_aMap.erase(it);
+                m_aMap.insert(::std::pair<const OUString, css::uno::Reference<css::uno::XInterface> >(::comphelper::getString(evt.NewValue),xCorrectType));
+                break;
+            }
     }
 }
 


More information about the Libreoffice-commits mailing list