summaryrefslogtreecommitdiff
path: root/basic/source/basmgr/basicmanagerrepository.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'basic/source/basmgr/basicmanagerrepository.cxx')
-rw-r--r--basic/source/basmgr/basicmanagerrepository.cxx6
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);
}