svl/source/passwordcontainer/syscreds.cxx | 48 ++++++++++++++++-------------- svl/source/passwordcontainer/syscreds.hxx | 13 ++++---- 2 files changed, 34 insertions(+), 27 deletions(-)
New commits: commit cb9492ce8a54848b5418a0efdf2beeb7999f3e54 Author: Noel Grandin <[email protected]> AuthorDate: Fri Feb 17 13:11:06 2023 +0200 Commit: Noel Grandin <[email protected]> CommitDate: Sat Feb 18 09:48:20 2023 +0000 osl::Mutex->std::mutex in SysCredentialsConfigItem Change-Id: If1e938381917bf2d538ca663961782430e7cbf77 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/147230 Tested-by: Jenkins Reviewed-by: Noel Grandin <[email protected]> diff --git a/svl/source/passwordcontainer/syscreds.cxx b/svl/source/passwordcontainer/syscreds.cxx index a537455e4172..8de4a82f0d9a 100644 --- a/svl/source/passwordcontainer/syscreds.cxx +++ b/svl/source/passwordcontainer/syscreds.cxx @@ -38,10 +38,10 @@ void SysCredentialsConfigItem::Notify( const uno::Sequence< OUString > & /*seqPropertyNames*/ ) { { - ::osl::MutexGuard aGuard( m_aMutex ); + std::unique_lock aGuard( m_aMutex ); m_bInited = false; // rebuild m_seqURLs - getSystemCredentialsURLs(); + getSystemCredentialsURLs(aGuard); } m_pOwner->persistentConfigChanged(); } @@ -54,7 +54,13 @@ void SysCredentialsConfigItem::ImplCommit() uno::Sequence< OUString > SysCredentialsConfigItem::getSystemCredentialsURLs() { - ::osl::MutexGuard aGuard( m_aMutex ); + std::unique_lock aGuard(m_aMutex); + return getSystemCredentialsURLs(aGuard); +} + +uno::Sequence< OUString > +SysCredentialsConfigItem::getSystemCredentialsURLs(std::unique_lock<std::mutex>& /*rGuard*/) +{ if ( !m_bInited ) { // read config item @@ -81,8 +87,6 @@ SysCredentialsConfigItem::getSystemCredentialsURLs() void SysCredentialsConfigItem::setSystemCredentialsURLs( const uno::Sequence< OUString > & seqURLList ) { - ::osl::MutexGuard aGuard( m_aMutex ); - // write config item. uno::Sequence< OUString > aPropNames{ "AuthenticateUsingSystemCredentials" }; uno::Sequence< uno::Any > aPropValues{ uno::Any(seqURLList) }; @@ -90,6 +94,8 @@ void SysCredentialsConfigItem::setSystemCredentialsURLs( utl::ConfigItem::SetModified(); utl::ConfigItem::PutProperties( aPropNames, aPropValues ); + std::unique_lock aGuard( m_aMutex ); + m_seqURLs = seqURLList; m_bInited = true; } diff --git a/svl/source/passwordcontainer/syscreds.hxx b/svl/source/passwordcontainer/syscreds.hxx index 7f18243746b7..75241c4e79dd 100644 --- a/svl/source/passwordcontainer/syscreds.hxx +++ b/svl/source/passwordcontainer/syscreds.hxx @@ -44,9 +44,10 @@ class SysCredentialsConfigItem : public utl::ConfigItem //bool isSystemCredentialsURL( const OUString & rURL ) const; private: + css::uno::Sequence< OUString > getSystemCredentialsURLs(std::unique_lock<std::mutex>& rGuard); virtual void ImplCommit() override; - ::osl::Mutex m_aMutex; + std::mutex m_aMutex; bool m_bInited; css::uno::Sequence< OUString > m_seqURLs; SysCredentialsConfig * m_pOwner; commit 63976f2b6dcf034d5cf119e1218606a117a7bb5e Author: Noel Grandin <[email protected]> AuthorDate: Fri Feb 17 12:55:01 2023 +0200 Commit: Noel Grandin <[email protected]> CommitDate: Sat Feb 18 09:48:11 2023 +0000 osl::Mutex->std::mutex in SysCredentialsConfig Change-Id: I5072236c14ce57ecb9fda552b7539a640d2d8836 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/147229 Tested-by: Jenkins Reviewed-by: Noel Grandin <[email protected]> diff --git a/svl/source/passwordcontainer/syscreds.cxx b/svl/source/passwordcontainer/syscreds.cxx index a3354b853a82..a537455e4172 100644 --- a/svl/source/passwordcontainer/syscreds.cxx +++ b/svl/source/passwordcontainer/syscreds.cxx @@ -162,9 +162,8 @@ SysCredentialsConfig::SysCredentialsConfig() { } -void SysCredentialsConfig::initCfg() +void SysCredentialsConfig::initCfg(std::unique_lock<std::mutex>& /*rGuard*/) { - osl::MutexGuard aGuard( m_aMutex ); if ( !m_bCfgInited ) { const uno::Sequence< OUString > aURLs( @@ -174,10 +173,8 @@ void SysCredentialsConfig::initCfg() } } -void SysCredentialsConfig::writeCfg() +void SysCredentialsConfig::writeCfg(std::unique_lock<std::mutex>& /*rGuard*/) { - osl::MutexGuard aGuard( m_aMutex ); - OSL_ENSURE( m_bCfgInited, "SysCredentialsConfig::writeCfg : not initialized!" ); m_aConfigItem.setSystemCredentialsURLs( comphelper::containerToSequence(m_aCfgContainer) ); @@ -185,12 +182,12 @@ void SysCredentialsConfig::writeCfg() OUString SysCredentialsConfig::find( OUString const & aURL ) { - osl::MutexGuard aGuard( m_aMutex ); + std::unique_lock aGuard( m_aMutex ); OUString aResult; if ( findURL( m_aMemContainer, aURL, aResult ) ) return aResult; - initCfg(); + initCfg(aGuard); if ( findURL( m_aCfgContainer, aURL, aResult ) ) return aResult; @@ -199,21 +196,21 @@ OUString SysCredentialsConfig::find( OUString const & aURL ) void SysCredentialsConfig::add( OUString const & rURL, bool bPersistent ) { - ::osl::MutexGuard aGuard( m_aMutex ); + std::unique_lock aGuard( m_aMutex ); if ( bPersistent ) { m_aMemContainer.erase( rURL ); - initCfg(); + initCfg(aGuard); m_aCfgContainer.insert( rURL ); - writeCfg(); + writeCfg(aGuard); } else { - initCfg(); + initCfg(aGuard); if ( m_aCfgContainer.erase( rURL ) > 0 ) - writeCfg(); + writeCfg(aGuard); m_aMemContainer.insert( rURL ); } @@ -221,16 +218,19 @@ void SysCredentialsConfig::add( OUString const & rURL, bool bPersistent ) void SysCredentialsConfig::remove( OUString const & rURL ) { + std::unique_lock aGuard(m_aMutex); + m_aMemContainer.erase( rURL ); - initCfg(); + initCfg(aGuard); if ( m_aCfgContainer.erase( rURL ) > 0 ) - writeCfg(); + writeCfg(aGuard); } uno::Sequence< OUString > SysCredentialsConfig::list( bool bOnlyPersistent ) { - initCfg(); + std::unique_lock aGuard(m_aMutex); + initCfg(aGuard); sal_Int32 nCount = m_aCfgContainer.size() + ( bOnlyPersistent ? 0 : m_aMemContainer.size() ); uno::Sequence< OUString > aResult( nCount ); @@ -256,7 +256,7 @@ uno::Sequence< OUString > SysCredentialsConfig::list( bool bOnlyPersistent ) void SysCredentialsConfig::persistentConfigChanged() { - ::osl::MutexGuard aGuard( m_aMutex ); + std::unique_lock aGuard( m_aMutex ); m_bCfgInited = false; // re-init on demand. } diff --git a/svl/source/passwordcontainer/syscreds.hxx b/svl/source/passwordcontainer/syscreds.hxx index 4f2d6734788e..7f18243746b7 100644 --- a/svl/source/passwordcontainer/syscreds.hxx +++ b/svl/source/passwordcontainer/syscreds.hxx @@ -20,9 +20,9 @@ #ifndef INCLUDED_SVL_SOURCE_PASSWORDCONTAINER_SYSCREDS_HXX #define INCLUDED_SVL_SOURCE_PASSWORDCONTAINER_SYSCREDS_HXX -#include <set> #include <memory> -#include <osl/mutex.hxx> +#include <mutex> +#include <set> #include <rtl/ustring.hxx> #include <com/sun/star/uno/Sequence.hxx> #include <unotools/configitem.hxx> @@ -65,10 +65,10 @@ class SysCredentialsConfig void persistentConfigChanged(); private: - void initCfg(); - void writeCfg(); + void initCfg(std::unique_lock<std::mutex>& rGuard); + void writeCfg(std::unique_lock<std::mutex>& rGuard); - ::osl::Mutex m_aMutex; + std::mutex m_aMutex; std::set< OUString > m_aMemContainer; std::set< OUString > m_aCfgContainer; SysCredentialsConfigItem m_aConfigItem;
