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;

Reply via email to