framework/inc/stdtypes.h                   |    9 ---------
 framework/source/services/autorecovery.cxx |    9 +++++----
 framework/source/services/frame.cxx        |   23 +++++++++--------------
 3 files changed, 14 insertions(+), 27 deletions(-)

New commits:
commit 95266ea93458644c89f1ac7bf924c5323ed64544
Author:     Noel Grandin <noelgran...@gmail.com>
AuthorDate: Wed Dec 1 20:28:29 2021 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Fri Dec 3 08:40:02 2021 +0100

    use OMultiTypeInterfaceContainerHelperVar3 in framework
    
    Change-Id: Ia2f59322511ed85492708262f90de26b33275105
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126197
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/framework/inc/stdtypes.h b/framework/inc/stdtypes.h
index feec3ef92ceb..0ccc056cf605 100644
--- a/framework/inc/stdtypes.h
+++ b/framework/inc/stdtypes.h
@@ -21,7 +21,6 @@
 
 #include <com/sun/star/awt/KeyEvent.hpp>
 
-#include <comphelper/multiinterfacecontainer2.hxx>
 #include <rtl/ustring.hxx>
 
 namespace framework{
@@ -55,14 +54,6 @@ struct KeyEventEqualsFunc
     }
 };
 
-/**
-    It can be used to map names (e.g. of properties) to her corresponding 
handles.
-    Our helper class OPropertySetHelper works optimized with handles but 
sometimes we have only a property name.
-    Mapping between these two parts of a property should be done in the 
fastest way :-)
-*/
-
-typedef comphelper::OMultiTypeInterfaceContainerHelperVar2<OUString> 
ListenerHash;
-
 }       // namespace framework
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/framework/source/services/autorecovery.cxx 
b/framework/source/services/autorecovery.cxx
index ebcae2a0862b..724d09204f68 100644
--- a/framework/source/services/autorecovery.cxx
+++ b/framework/source/services/autorecovery.cxx
@@ -75,6 +75,7 @@
 #include <o3tl/safeint.hxx>
 #include <o3tl/typed_flags_set.hxx>
 #include <unotools/mediadescriptor.hxx>
+#include <comphelper/multiinterfacecontainer3.hxx>
 #include <comphelper/namedvaluecollection.hxx>
 #include <comphelper/sequence.hxx>
 #include <vcl/evntpost.hxx>
@@ -419,7 +420,7 @@ private:
 
     /** @short  contains all status listener registered at this instance.
      */
-    ListenerHash m_lListener;
+    
comphelper::OMultiTypeInterfaceContainerHelperVar3<css::frame::XStatusListener, 
OUString> m_lListener;
 
     /** @descr  This member is used to prevent us against re-entrance problems.
                 A mutex can't help to prevent us from concurrent using of 
members
@@ -3477,7 +3478,7 @@ void AutoRecovery::implts_informListener(      Job        
              eJob  ,
                                          const css::frame::FeatureStateEvent& 
aEvent)
 {
     // Helper shares mutex with us -> threadsafe!
-    ::comphelper::OInterfaceContainerHelper2* pListenerForURL = nullptr;
+    ::comphelper::OInterfaceContainerHelper3<css::frame::XStatusListener>* 
pListenerForURL = nullptr;
     OUString                           sJob            = 
AutoRecovery::implst_getJobDescription(eJob);
 
     // inform listener, which are registered for any URLs(!)
@@ -3485,12 +3486,12 @@ void AutoRecovery::implts_informListener(      Job      
                eJob  ,
     if(pListenerForURL == nullptr)
         return;
 
-    ::comphelper::OInterfaceIteratorHelper2 pIt(*pListenerForURL);
+    ::comphelper::OInterfaceIteratorHelper3 pIt(*pListenerForURL);
     while(pIt.hasMoreElements())
     {
         try
         {
-            
static_cast<css::frame::XStatusListener*>(pIt.next())->statusChanged(aEvent);
+            pIt.next()->statusChanged(aEvent);
         }
         catch(const css::uno::RuntimeException&)
         {
diff --git a/framework/source/services/frame.cxx 
b/framework/source/services/frame.cxx
index 991a7b58131b..fde9da72234a 100644
--- a/framework/source/services/frame.cxx
+++ b/framework/source/services/frame.cxx
@@ -68,6 +68,7 @@
 
 #include <cppuhelper/basemutex.hxx>
 #include <cppuhelper/compbase.hxx>
+#include <comphelper/multiinterfacecontainer3.hxx>
 #include <comphelper/multicontainer2.hxx>
 #include <cppuhelper/supportsservice.hxx>
 #include <cppuhelper/weak.hxx>
@@ -418,8 +419,8 @@ private:
     typedef std::unordered_map<OUString, css::beans::Property> TPropInfoHash;
     TPropInfoHash m_lProps;
 
-    ListenerHash m_lSimpleChangeListener;
-    ListenerHash m_lVetoChangeListener;
+    
comphelper::OMultiTypeInterfaceContainerHelperVar3<css::beans::XPropertyChangeListener,
 OUString> m_lSimpleChangeListener;
+    
comphelper::OMultiTypeInterfaceContainerHelperVar3<css::beans::XVetoableChangeListener,
 OUString> m_lVetoChangeListener;
 
     // hold it weak ... otherwise this helper has to be "killed" explicitly .-)
     css::uno::WeakReference< css::uno::XInterface > m_xBroadcaster;
@@ -2860,19 +2861,16 @@ bool XFrameImpl::impl_existsVeto(const 
css::beans::PropertyChangeEvent& aEvent)
         The used helper is threadsafe and it lives for the whole lifetime of
         our own object.
     */
-    ::comphelper::OInterfaceContainerHelper2* pVetoListener = 
m_lVetoChangeListener.getContainer(aEvent.PropertyName);
+    
::comphelper::OInterfaceContainerHelper3<css::beans::XVetoableChangeListener>* 
pVetoListener = m_lVetoChangeListener.getContainer(aEvent.PropertyName);
     if (! pVetoListener)
         return false;
 
-    ::comphelper::OInterfaceIteratorHelper2 pListener(*pVetoListener);
+    ::comphelper::OInterfaceIteratorHelper3 pListener(*pVetoListener);
     while (pListener.hasMoreElements())
     {
         try
         {
-            css::uno::Reference< css::beans::XVetoableChangeListener > 
xListener(
-                
static_cast<css::beans::XVetoableChangeListener*>(pListener.next()),
-                css::uno::UNO_QUERY_THROW);
-            xListener->vetoableChange(aEvent);
+            pListener.next()->vetoableChange(aEvent);
         }
         catch(const css::uno::RuntimeException&)
             { pListener.remove(); }
@@ -2889,19 +2887,16 @@ void XFrameImpl::impl_notifyChangeListener(const 
css::beans::PropertyChangeEvent
         The used helper is threadsafe and it lives for the whole lifetime of
         our own object.
     */
-    ::comphelper::OInterfaceContainerHelper2* pSimpleListener = 
m_lSimpleChangeListener.getContainer(aEvent.PropertyName);
+    
::comphelper::OInterfaceContainerHelper3<css::beans::XPropertyChangeListener>* 
pSimpleListener = m_lSimpleChangeListener.getContainer(aEvent.PropertyName);
     if (! pSimpleListener)
         return;
 
-    ::comphelper::OInterfaceIteratorHelper2 pListener(*pSimpleListener);
+    ::comphelper::OInterfaceIteratorHelper3 pListener(*pSimpleListener);
     while (pListener.hasMoreElements())
     {
         try
         {
-            css::uno::Reference< css::beans::XPropertyChangeListener > 
xListener(
-                
static_cast<css::beans::XVetoableChangeListener*>(pListener.next()),
-                css::uno::UNO_QUERY_THROW);
-            xListener->propertyChange(aEvent);
+            pListener.next()->propertyChange(aEvent);
         }
         catch(const css::uno::RuntimeException&)
             { pListener.remove(); }

Reply via email to