summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNoel Grandin <noelgrandin@gmail.com>2021-11-21 12:07:29 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2021-11-21 15:47:48 +0100
commitc33b0e928e07387bf60708be3f3dc07d9840663c (patch)
tree833183c8f6a2ecbd9d62a226a93214aba37acd03
parentdc2010964fb8d18d5c4fe96172ee082276a1e587 (diff)
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.grandin@collabora.co.uk>
-rw-r--r--framework/inc/uifactory/factoryconfiguration.hxx6
-rw-r--r--framework/source/uifactory/factoryconfiguration.cxx28
2 files changed, 16 insertions, 18 deletions
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;