diff options
author | Henry Castro <hcastro@collabora.com> | 2021-04-01 17:07:04 -0400 |
---|---|---|
committer | Henry Castro <hcastro@collabora.com> | 2021-04-08 13:58:11 +0200 |
commit | f153be729ed12ea301642e7d2551ec60b70a2a61 (patch) | |
tree | a4c2439d0870f0923c0beb333d53743a4ac9cbdb | |
parent | c0936ba2474f199b7242e2ca0a2d460647bc339e (diff) |
lok: remove event listener when disposing
In order to prevent that the event listener
holds the object reference count when removed,
ensure they are removed when disposing the object.
Change-Id: I7cb4cb7d87acfc9610c2498760ade531456fe22e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113493
Tested-by: Jenkins
Reviewed-by: Henry Castro <hcastro@collabora.com>
4 files changed, 9 insertions, 2 deletions
diff --git a/accessibility/source/extended/AccessibleBrowseBoxTableCell.cxx b/accessibility/source/extended/AccessibleBrowseBoxTableCell.cxx index 7827d686a3e8..d621e2e8bf64 100644 --- a/accessibility/source/extended/AccessibleBrowseBoxTableCell.cxx +++ b/accessibility/source/extended/AccessibleBrowseBoxTableCell.cxx @@ -329,7 +329,7 @@ namespace accessibility { if ( _rSource.Source == mxParent ) { - dispose(); + dispose(); } } diff --git a/connectivity/source/cpool/ZConnectionPool.cxx b/connectivity/source/cpool/ZConnectionPool.cxx index 2917ce019700..cc90fa464e16 100644 --- a/connectivity/source/cpool/ZConnectionPool.cxx +++ b/connectivity/source/cpool/ZConnectionPool.cxx @@ -189,7 +189,7 @@ void SAL_CALL OConnectionPool::disposing( const css::lang::EventObject& Source ) } else { - m_xDriverNode.clear(); + m_xDriverNode.clear(); } } diff --git a/sd/source/ui/framework/module/SlideSorterModule.cxx b/sd/source/ui/framework/module/SlideSorterModule.cxx index 1aa96bd0b2d4..b6e9e658b099 100644 --- a/sd/source/ui/framework/module/SlideSorterModule.cxx +++ b/sd/source/ui/framework/module/SlideSorterModule.cxx @@ -237,6 +237,10 @@ void SAL_CALL SlideSorterModule::disposing() { if (mxConfigurationController.is()) { + uno::Reference<lang::XComponent> const xComponent(mxConfigurationController, UNO_QUERY); + if (xComponent.is()) + xComponent->removeEventListener(this); + mxConfigurationController->removeConfigurationChangeListener(this); mxConfigurationController = nullptr; } diff --git a/sdext/source/presenter/PresenterCurrentSlideObserver.cxx b/sdext/source/presenter/PresenterCurrentSlideObserver.cxx index b7769219c7fe..0cd33d9c0beb 100644 --- a/sdext/source/presenter/PresenterCurrentSlideObserver.cxx +++ b/sdext/source/presenter/PresenterCurrentSlideObserver.cxx @@ -57,6 +57,9 @@ void SAL_CALL PresenterCurrentSlideObserver::disposing() mxSlideShowController->removeSlideShowListener(static_cast<XSlideShowListener*>(this)); mxSlideShowController = nullptr; } + + if (mpPresenterController.is()) + mpPresenterController->removeEventListener(this); } //----- XSlideShowListener ---------------------------------------------------- |