use comphelper::WeakComponentImplHelper in ContextChangeEventMultiplexer
Change-Id: I6f8c2be817695e44b25f209a5a56e021cd3e94d5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127487
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
diff --git a/framework/source/services/ContextChangeEventMultiplexer.cxx b/framework/source/services/ContextChangeEventMultiplexer.cxx
index 0dea082..76424b3 100644
--- a/framework/source/services/ContextChangeEventMultiplexer.cxx
+++ b/framework/source/services/ContextChangeEventMultiplexer.cxx
@@ -26,10 +26,10 @@
#include <com/sun/star/ui/ContextChangeEventMultiplexer.hpp>
#include <com/sun/star/uno/XComponentContext.hpp>
#include <cppuhelper/compbase.hxx>
#include <comphelper/compbase.hxx>
#include <cppuhelper/supportsservice.hxx>
#include <cppuhelper/basemutex.hxx>
#include <rtl/ref.hxx>
#include <osl/diagnose.h>
#include <algorithm>
#include <map>
@@ -40,22 +40,21 @@ using namespace css::uno;
namespace {
typedef ::cppu::WeakComponentImplHelper <
typedef comphelper::WeakComponentImplHelper <
css::ui::XContextChangeEventMultiplexer,
css::lang::XServiceInfo,
css::lang::XEventListener
> ContextChangeEventMultiplexerInterfaceBase;
class ContextChangeEventMultiplexer
: private ::cppu::BaseMutex,
public ContextChangeEventMultiplexerInterfaceBase
: public ContextChangeEventMultiplexerInterfaceBase
{
public:
ContextChangeEventMultiplexer();
ContextChangeEventMultiplexer(const ContextChangeEventMultiplexer&) = delete;
ContextChangeEventMultiplexer& operator=(const ContextChangeEventMultiplexer&) = delete;
virtual void SAL_CALL disposing() override;
virtual void disposing(std::unique_lock<std::mutex>&) override;
// XContextChangeEventMultiplexer
virtual void SAL_CALL addContextChangeEventListener (
@@ -106,15 +105,16 @@ public:
};
ContextChangeEventMultiplexer::ContextChangeEventMultiplexer()
: ContextChangeEventMultiplexerInterfaceBase(m_aMutex)
{
}
void SAL_CALL ContextChangeEventMultiplexer::disposing()
void ContextChangeEventMultiplexer::disposing(std::unique_lock<std::mutex>& rGuard)
{
ListenerMap aListeners;
aListeners.swap(maListeners);
rGuard.unlock();
css::uno::Reference<css::uno::XInterface> xThis (static_cast<XWeak*>(this));
css::lang::EventObject aEvent (xThis);
for (auto const& container : aListeners)