diff options
author | Noel Grandin <noelgrandin@gmail.com> | 2021-12-24 15:58:17 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2021-12-25 13:56:27 +0100 |
commit | c68c744b68fd50adb6ce725bf9de377a5f915dab (patch) | |
tree | a672de5b952dd8982951c90d791075dd213fab77 /comphelper | |
parent | f0c0c62c10e4ffdb9ce44202e2540d2f39a9fcb5 (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.cxx | 6 |
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) |