summaryrefslogtreecommitdiff
path: root/comphelper
diff options
context:
space:
mode:
authorNoel Grandin <noelgrandin@gmail.com>2021-12-24 15:58:17 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2021-12-25 13:56:27 +0100
commitc68c744b68fd50adb6ce725bf9de377a5f915dab (patch)
treea672de5b952dd8982951c90d791075dd213fab77 /comphelper
parentf0c0c62c10e4ffdb9ce44202e2540d2f39a9fcb5 (diff)
pass unique_lock as param in WeakComponentImplHelperBase::disposing
so that subclasses can drop the lock while calling listeners Change-Id: I6105438110af08f10b0ed50057b28172c3442b95 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127434 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'comphelper')
-rw-r--r--comphelper/source/misc/compbase.cxx6
1 files changed, 4 insertions, 2 deletions
diff --git a/comphelper/source/misc/compbase.cxx b/comphelper/source/misc/compbase.cxx
index ecae7108ff90..b8a207ceedb1 100644
--- a/comphelper/source/misc/compbase.cxx
+++ b/comphelper/source/misc/compbase.cxx
@@ -25,12 +25,14 @@ void SAL_CALL WeakComponentImplHelperBase::dispose()
if (m_bDisposed)
return;
m_bDisposed = true;
- disposing();
+ disposing(aGuard);
+ if (!aGuard.owns_lock())
+ aGuard.lock();
css::lang::EventObject aEvt(static_cast<OWeakObject*>(this));
maEventListeners.disposeAndClear(aGuard, aEvt);
}
-void WeakComponentImplHelperBase::disposing() {}
+void WeakComponentImplHelperBase::disposing(std::unique_lock<std::mutex>&) {}
void SAL_CALL WeakComponentImplHelperBase::addEventListener(
css::uno::Reference<css::lang::XEventListener> const& rxListener)