framework/inc/uifactory/factoryconfiguration.hxx | 6 ++-- framework/source/uifactory/factoryconfiguration.cxx | 28 ++++++++------------ 2 files changed, 16 insertions(+), 18 deletions(-)
New commits: commit c33b0e928e07387bf60708be3f3dc07d9840663c Author: Noel Grandin <noelgran...@gmail.com> AuthorDate: Sun Nov 21 12:07:29 2021 +0200 Commit: Noel Grandin <noel.gran...@collabora.co.uk> CommitDate: Sun Nov 21 15:47:48 2021 +0100 osl::Mutex->std::mutex in ConfigurationAccess_ControllerFactory Change-Id: I2e526ff2dc9f02850bd9fc510c63b5d9db24af58 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125619 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/framework/inc/uifactory/factoryconfiguration.hxx b/framework/inc/uifactory/factoryconfiguration.hxx index 1ba2a622c74c..9cfed290f3ce 100644 --- a/framework/inc/uifactory/factoryconfiguration.hxx +++ b/framework/inc/uifactory/factoryconfiguration.hxx @@ -27,6 +27,7 @@ #include <cppuhelper/implbase.hxx> #include <rtl/ustring.hxx> +#include <mutex> #include <string_view> #include <unordered_map> @@ -45,7 +46,6 @@ public: virtual ~ConfigurationAccess_ControllerFactory() override; void readConfigurationData(); - void updateConfigurationData(); OUString getServiceFromCommandModule( std::u16string_view rCommandURL, std::u16string_view rModule ) const; OUString getValueFromCommandModule( std::u16string_view rCommandURL, std::u16string_view rModule ) const; @@ -61,6 +61,8 @@ public: virtual void SAL_CALL disposing( const css::lang::EventObject& Source ) override; private: + void updateConfigurationDataImpl(); + struct ControllerInfo { OUString m_aImplementationName; @@ -75,7 +77,7 @@ private: bool impl_getElementProps( const css::uno::Any& aElement, OUString& aCommand, OUString& aModule, OUString& aServiceSpecifier,OUString& aValue ) const; - mutable osl::Mutex m_mutex; + mutable std::mutex m_mutex; OUString m_aPropCommand; OUString m_aPropModule; OUString m_aPropController; diff --git a/framework/source/uifactory/factoryconfiguration.cxx b/framework/source/uifactory/factoryconfiguration.cxx index c0c75db7bba8..d27cdb145dbd 100644 --- a/framework/source/uifactory/factoryconfiguration.cxx +++ b/framework/source/uifactory/factoryconfiguration.cxx @@ -66,7 +66,7 @@ ConfigurationAccess_ControllerFactory::ConfigurationAccess_ControllerFactory( co ConfigurationAccess_ControllerFactory::~ConfigurationAccess_ControllerFactory() { - osl::MutexGuard g(m_mutex); + std::unique_lock g(m_mutex); Reference< XContainer > xContainer( m_xConfigAccess, UNO_QUERY ); if ( xContainer.is() ) @@ -75,7 +75,7 @@ ConfigurationAccess_ControllerFactory::~ConfigurationAccess_ControllerFactory() OUString ConfigurationAccess_ControllerFactory::getServiceFromCommandModule( std::u16string_view rCommandURL, std::u16string_view rModule ) const { - osl::MutexGuard g(m_mutex); + std::unique_lock g(m_mutex); MenuControllerMap::const_iterator pIter = m_aMenuControllerMap.find( getHashKeyFromStrings( rCommandURL, rModule )); if ( pIter != m_aMenuControllerMap.end() ) @@ -94,7 +94,7 @@ OUString ConfigurationAccess_ControllerFactory::getServiceFromCommandModule( std } OUString ConfigurationAccess_ControllerFactory::getValueFromCommandModule( std::u16string_view rCommandURL, std::u16string_view rModule ) const { - osl::MutexGuard g(m_mutex); + std::unique_lock g(m_mutex); MenuControllerMap::const_iterator pIter = m_aMenuControllerMap.find( getHashKeyFromStrings( rCommandURL, rModule )); @@ -118,7 +118,7 @@ void ConfigurationAccess_ControllerFactory::addServiceToCommandModule( std::u16string_view rModule, const OUString& rServiceSpecifier ) { - osl::MutexGuard g(m_mutex); + std::unique_lock g(m_mutex); OUString aHashKey = getHashKeyFromStrings( rCommandURL, rModule ); m_aMenuControllerMap.emplace( aHashKey,ControllerInfo(rServiceSpecifier,OUString()) ); @@ -128,7 +128,7 @@ void ConfigurationAccess_ControllerFactory::removeServiceFromCommandModule( std::u16string_view rCommandURL, std::u16string_view rModule ) { - osl::MutexGuard g(m_mutex); + std::unique_lock g(m_mutex); OUString aHashKey = getHashKeyFromStrings( rCommandURL, rModule ); m_aMenuControllerMap.erase( aHashKey ); @@ -142,7 +142,7 @@ void SAL_CALL ConfigurationAccess_ControllerFactory::elementInserted( const Cont OUString aService; OUString aValue; - osl::MutexGuard g(m_mutex); + std::unique_lock g(m_mutex); if ( impl_getElementProps( aEvent.Element, aCommand, aModule, aService, aValue )) { @@ -162,7 +162,7 @@ void SAL_CALL ConfigurationAccess_ControllerFactory::elementRemoved ( const Cont OUString aService; OUString aValue; - osl::MutexGuard g(m_mutex); + std::unique_lock g(m_mutex); if ( impl_getElementProps( aEvent.Element, aCommand, aModule, aService, aValue )) { @@ -182,14 +182,14 @@ void SAL_CALL ConfigurationAccess_ControllerFactory::elementReplaced( const Cont void SAL_CALL ConfigurationAccess_ControllerFactory::disposing( const EventObject& ) { // remove our reference to the config access - osl::MutexGuard g(m_mutex); + std::unique_lock g(m_mutex); m_xConfigAccess.clear(); } void ConfigurationAccess_ControllerFactory::readConfigurationData() { // SAFE - osl::ClearableMutexGuard aLock( m_mutex ); + std::unique_lock aLock( m_mutex ); if ( !m_bConfigAccessInitialized ) { @@ -212,11 +212,11 @@ void ConfigurationAccess_ControllerFactory::readConfigurationData() return; // Read and update configuration data - updateConfigurationData(); + updateConfigurationDataImpl(); uno::Reference< container::XContainer > xContainer( m_xConfigAccess, uno::UNO_QUERY ); // UNSAFE - aLock.clear(); + aLock.unlock(); if ( xContainer.is() ) { @@ -225,12 +225,8 @@ void ConfigurationAccess_ControllerFactory::readConfigurationData() } } -void ConfigurationAccess_ControllerFactory::updateConfigurationData() +void ConfigurationAccess_ControllerFactory::updateConfigurationDataImpl() { - osl::MutexGuard g(m_mutex); - if ( !m_xConfigAccess.is() ) - return; - const Sequence< OUString > aPopupMenuControllers = m_xConfigAccess->getElementNames(); OUString aCommand;