diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2023-02-22 12:24:31 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2023-02-22 11:47:11 +0000 |
commit | 1f49d8ad7a520975f611023f77f3fc9c0e32ed77 (patch) | |
tree | 76286d1a5a9a1f5b36ec86b281234485300bd147 /toolkit | |
parent | fce44263b6b59a720dfebb1643430339dc3959f6 (diff) |
BaseMutex->std::mutex in ListenerMultiplexerBase
Change-Id: Icd565c83ca3b4afb1a846a637b7943b0498487e4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/147457
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'toolkit')
-rw-r--r-- | toolkit/source/awt/vclxcontainer.cxx | 2 | ||||
-rw-r--r-- | toolkit/source/awt/vclxwindow.cxx | 4 | ||||
-rw-r--r-- | toolkit/source/controls/tree/treecontrol.cxx | 18 | ||||
-rw-r--r-- | toolkit/source/helper/listenermultiplexer.cxx | 9 |
4 files changed, 24 insertions, 9 deletions
diff --git a/toolkit/source/awt/vclxcontainer.cxx b/toolkit/source/awt/vclxcontainer.cxx index 5927c1f8e0b0..954655397853 100644 --- a/toolkit/source/awt/vclxcontainer.cxx +++ b/toolkit/source/awt/vclxcontainer.cxx @@ -19,7 +19,7 @@ #include <awt/vclxcontainer.hxx> #include <toolkit/helper/vclunohelper.hxx> -#include <comphelper/interfacecontainer3.hxx> +#include <toolkit/helper/listenermultiplexer.hxx> #include <vcl/svapp.hxx> #include <vcl/window.hxx> diff --git a/toolkit/source/awt/vclxwindow.cxx b/toolkit/source/awt/vclxwindow.cxx index f5ebe82f02db..f3985bc12df5 100644 --- a/toolkit/source/awt/vclxwindow.cxx +++ b/toolkit/source/awt/vclxwindow.cxx @@ -1345,12 +1345,12 @@ void VCLXWindow::GetPropertyIds( std::vector< sal_uInt16 >& _out_rIds ) return ImplGetPropertyIds( _out_rIds, mpImpl->mbWithDefaultProps ); } -::comphelper::OInterfaceContainerHelper3<css::awt::XVclContainerListener>& VCLXWindow::GetContainerListeners() +ListenerMultiplexerBase<css::awt::XVclContainerListener>& VCLXWindow::GetContainerListeners() { return mpImpl->getContainerListeners(); } -::comphelper::OInterfaceContainerHelper3<css::awt::XTopWindowListener>& VCLXWindow::GetTopWindowListeners() +ListenerMultiplexerBase<css::awt::XTopWindowListener>& VCLXWindow::GetTopWindowListeners() { return mpImpl->getTopWindowListeners(); } diff --git a/toolkit/source/controls/tree/treecontrol.cxx b/toolkit/source/controls/tree/treecontrol.cxx index 43d353079f43..3fd06588d3d8 100644 --- a/toolkit/source/controls/tree/treecontrol.cxx +++ b/toolkit/source/controls/tree/treecontrol.cxx @@ -451,7 +451,9 @@ void UnoTreeControl::createPeer( const uno::Reference< awt::XToolkit > & rxToolk void SAL_CALL TreeEditListenerMultiplexer::nodeEditing( const Reference< XTreeNode >& Node ) { - ::comphelper::OInterfaceIteratorHelper3 aIt(*this); + std::unique_lock g(m_aMutex); + ::comphelper::OInterfaceIteratorHelper4 aIt(g, maListeners); + g.unlock(); while( aIt.hasMoreElements() ) { Reference<XTreeEditListener> xListener(aIt.next()); @@ -463,7 +465,10 @@ void SAL_CALL TreeEditListenerMultiplexer::nodeEditing( const Reference< XTreeNo { OSL_ENSURE( e.Context.is(), "caught DisposedException with empty Context field" ); if ( e.Context == xListener || !e.Context.is() ) - aIt.remove(); + { + std::unique_lock g2(m_aMutex); + aIt.remove(g2); + } } catch( const RuntimeException& ) { @@ -474,7 +479,9 @@ void SAL_CALL TreeEditListenerMultiplexer::nodeEditing( const Reference< XTreeNo void SAL_CALL TreeEditListenerMultiplexer::nodeEdited( const Reference< XTreeNode >& Node, const OUString& NewText ) { - ::comphelper::OInterfaceIteratorHelper3 aIt(*this); + std::unique_lock g(m_aMutex); + ::comphelper::OInterfaceIteratorHelper4 aIt(g, maListeners); + g.unlock(); while( aIt.hasMoreElements() ) { Reference<XTreeEditListener> xListener(aIt.next()); @@ -486,7 +493,10 @@ void SAL_CALL TreeEditListenerMultiplexer::nodeEdited( const Reference< XTreeNod { OSL_ENSURE( e.Context.is(), "caught DisposedException with empty Context field" ); if ( e.Context == xListener || !e.Context.is() ) - aIt.remove(); + { + std::unique_lock g2(m_aMutex); + aIt.remove(g2); + } } catch( const RuntimeException& ) { diff --git a/toolkit/source/helper/listenermultiplexer.cxx b/toolkit/source/helper/listenermultiplexer.cxx index eeed767ffa48..1c3ac1de52ca 100644 --- a/toolkit/source/helper/listenermultiplexer.cxx +++ b/toolkit/source/helper/listenermultiplexer.cxx @@ -147,7 +147,9 @@ IMPL_TABLISTENERMULTIPLEXER_LISTENERMETHOD_BODY_1PARAM( TabListenerMultiplexer, void TabListenerMultiplexer::changed( sal_Int32 evt, const css::uno::Sequence< css::beans::NamedValue >& evt2 ) { sal_Int32 aMulti( evt ); - ::comphelper::OInterfaceIteratorHelper3 aIt(*this); + std::unique_lock g(m_aMutex); + ::comphelper::OInterfaceIteratorHelper4 aIt(g, maListeners); + g.unlock(); while( aIt.hasMoreElements() ) { css::uno::Reference<css::awt::XTabListener> xListener(aIt.next()); @@ -159,7 +161,10 @@ void TabListenerMultiplexer::changed( sal_Int32 evt, const css::uno::Sequence< c { OSL_ENSURE( e.Context.is(), "caught DisposedException with empty Context field" ); if ( e.Context == xListener || !e.Context.is() ) - aIt.remove(); + { + std::unique_lock g2(m_aMutex); + aIt.remove(g2); + } } catch(const css::uno::RuntimeException&) { |