diff options
author | Jan-Marek Glogowski <jan-marek.glogowski@extern.cib.de> | 2019-11-20 12:18:39 +0000 |
---|---|---|
committer | Jan-Marek Glogowski <glogow@fbihome.de> | 2019-11-21 11:27:33 +0100 |
commit | d8cde1cf69bb170da74018e629e1b65830924e0b (patch) | |
tree | 4682b16e178db1e5488b2b073a8a9093dc7f8fb9 /basic | |
parent | 5e568feca88a5e9e39c50dd92a6c9b664ef5f714 (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
Diffstat (limited to 'basic')
-rw-r--r-- | basic/source/basmgr/basicmanagerrepository.cxx | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/basic/source/basmgr/basicmanagerrepository.cxx b/basic/source/basmgr/basicmanagerrepository.cxx index 9e3aecc249e0..edc73fed8c4a 100644 --- a/basic/source/basmgr/basicmanagerrepository.cxx +++ b/basic/source/basmgr/basicmanagerrepository.cxx @@ -537,12 +537,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); } |