| commit | fb65014f61957bb0e7cf9008b38322ef14e707d6 | [log] |
|---|---|---|
| author | Jan-Marek Glogowski <jan-marek.glogowski@extern.cib.de> | Wed Nov 20 12:18:39 2019 +0000 |
| committer | Michael Weghorn <m.weghorn@posteo.de> | Thu Nov 21 15:21:43 2019 +0100 |
| tree | 18670127033479ed5d5eac6599fc90e0b1cc5a34 | |
| parent | 41f2ec60825bc71686f506178733a885373d6ddb [diff] |
tdf#128434 free the BasicManager event listener This gets rid of the last 72 lost bytes I could identify in the huge valgrind logs to look like its PDF generation related. Change-Id: Idda3c2c5b7f5ce0211199b86503037b74438ccf2 Reviewed-on: https://gerrit.libreoffice.org/83302 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de> (cherry picked from commit 48b23bbfa0271ed327f668933b92d2ae9b99e806) Reviewed-on: https://gerrit.libreoffice.org/83350 (cherry picked from commit d8cde1cf69bb170da74018e629e1b65830924e0b) Reviewed-on: https://gerrit.libreoffice.org/83370 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
diff --git a/basic/source/basmgr/basicmanagerrepository.cxx b/basic/source/basmgr/basicmanagerrepository.cxx index b725f05..9ef667a 100644 --- a/basic/source/basmgr/basicmanagerrepository.cxx +++ b/basic/source/basmgr/basicmanagerrepository.cxx
@@ -538,12 +538,16 @@ namespace basic OSL_PRECOND( _pos != m_aStore.end(), "ImplRepository::impl_removeFromRepository: invalid position!" ); std::unique_ptr<BasicManager> pManager = std::move(_pos->second); Reference<XModel> xModel(_pos->first, UNO_QUERY); // *first* remove from map (else Notify won't work properly) m_aStore.erase( _pos ); // *then* delete the BasicManager EndListening( *pManager ); assert(xModel.is()); if (xModel.is()) stopComponentListening(xModel); }
diff --git a/unotools/source/misc/eventlisteneradapter.cxx b/unotools/source/misc/eventlisteneradapter.cxx index ac3dbe9..c9f6b6f 100644 --- a/unotools/source/misc/eventlisteneradapter.cxx +++ b/unotools/source/misc/eventlisteneradapter.cxx
@@ -84,7 +84,6 @@ namespace utl { Reference< XEventListener > xDeleteUponLeaving = m_xKeepMeAlive; m_xKeepMeAlive.clear(); m_xComponent.clear(); m_pAdapter->_disposing(_rSource); } @@ -118,7 +117,7 @@ namespace utl do { rtl::Reference<OEventListenerImpl>& pListenerImpl = *it; if ( pListenerImpl->getComponent().get() == _rxComp.get() ) if ((pListenerImpl->getComponent().get() == _rxComp.get()) || (pListenerImpl->getComponent() == _rxComp)) { pListenerImpl->dispose(); it = m_pImpl->aListeners.erase( it );