diff options
Diffstat (limited to 'package/source/xstor/ohierarchyholder.cxx')
-rw-r--r-- | package/source/xstor/ohierarchyholder.cxx | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/package/source/xstor/ohierarchyholder.cxx b/package/source/xstor/ohierarchyholder.cxx index 26b63f806eae..20c613b8b8d2 100644 --- a/package/source/xstor/ohierarchyholder.cxx +++ b/package/source/xstor/ohierarchyholder.cxx @@ -261,15 +261,15 @@ void SAL_CALL OHierarchyElement_Impl::disposing( const lang::EventObject& Source { try { - ::osl::ClearableMutexGuard aGuard( m_aMutex ); - uno::Reference< embed::XExtendedStorageStream > xStream( Source.Source, uno::UNO_QUERY ); + { + osl::MutexGuard aGuard(m_aMutex); + uno::Reference< embed::XExtendedStorageStream > xStream(Source.Source, uno::UNO_QUERY); - m_aOpenStreams.erase(std::remove_if(m_aOpenStreams.begin(), m_aOpenStreams.end(), - [&xStream](const OWeakStorRefList_Impl::value_type& rxStorage) { + m_aOpenStreams.erase(std::remove_if(m_aOpenStreams.begin(), m_aOpenStreams.end(), + [&xStream](const OWeakStorRefList_Impl::value_type& rxStorage) { return !rxStorage.get().is() || rxStorage.get() == xStream; }), - m_aOpenStreams.end()); - - aGuard.clear(); + m_aOpenStreams.end()); + } TestForClosing(); } |