replace double-checked locking patterns with thread safe ...
local statics.
Change-Id: Iab4963a04d15f06e9b1a36079a36d32453e09c8f
Reviewed-on: https://gerrit.libreoffice.org/61538
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
diff --git a/scripting/source/basprov/basprov.cxx b/scripting/source/basprov/basprov.cxx
index 6180fa3..ce71c00 100644
--- a/scripting/source/basprov/basprov.cxx
+++ b/scripting/source/basprov/basprov.cxx
@@ -76,21 +76,13 @@ namespace basprov
static Sequence< OUString > getSupportedServiceNames_BasicProviderImpl()
{
static Sequence< OUString >* pNames = nullptr;
if ( !pNames )
{
::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
if ( !pNames )
{
static Sequence< OUString > aNames(4);
aNames.getArray()[0] = "com.sun.star.script.provider.ScriptProviderForBasic";
aNames.getArray()[1] = "com.sun.star.script.provider.LanguageScriptProvider";
aNames.getArray()[2] = "com.sun.star.script.provider.ScriptProvider";
aNames.getArray()[3] = "com.sun.star.script.browse.BrowseNode";
pNames = &aNames;
}
}
return *pNames;
static Sequence< OUString > s_Names{
"com.sun.star.script.provider.ScriptProviderForBasic",
"com.sun.star.script.provider.LanguageScriptProvider",
"com.sun.star.script.provider.ScriptProvider",
"com.sun.star.script.browse.BrowseNode"};
return s_Names;
}
diff --git a/scripting/source/dlgprov/dlgprov.cxx b/scripting/source/dlgprov/dlgprov.cxx
index 90a28cc..4f979ee 100644
--- a/scripting/source/dlgprov/dlgprov.cxx
+++ b/scripting/source/dlgprov/dlgprov.cxx
@@ -177,17 +177,9 @@ namespace dlgprov
::osl::Mutex& getMutex()
{
static ::osl::Mutex* s_pMutex = nullptr;
if ( !s_pMutex )
{
::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
if ( !s_pMutex )
{
static ::osl::Mutex s_aMutex;
s_pMutex = &s_aMutex;
}
}
return *s_pMutex;
static ::osl::Mutex s_aMutex;
return s_aMutex;
}
diff --git a/scripting/source/stringresource/stringresource.cxx b/scripting/source/stringresource/stringresource.cxx
index a179775..9e29229 100644
--- a/scripting/source/stringresource/stringresource.cxx
+++ b/scripting/source/stringresource/stringresource.cxx
@@ -62,17 +62,9 @@ namespace stringresource
::osl::Mutex& getMutex()
{
static ::osl::Mutex* s_pMutex = nullptr;
if ( !s_pMutex )
{
::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
if ( !s_pMutex )
{
static ::osl::Mutex s_aMutex;
s_pMutex = &s_aMutex;
}
}
return *s_pMutex;
static ::osl::Mutex s_aMutex;
return s_aMutex;
}
diff --git a/sfx2/source/doc/objxtor.cxx b/sfx2/source/doc/objxtor.cxx
index 8eef03e..a03e3b7 100644
--- a/sfx2/source/doc/objxtor.cxx
+++ b/sfx2/source/doc/objxtor.cxx
@@ -838,19 +838,9 @@ SfxObjectShell* SfxObjectShell::GetObjectShell()
uno::Sequence< OUString > SfxObjectShell::GetEventNames()
{
static uno::Sequence< OUString >* pEventNameContainer = nullptr;
static uno::Sequence< OUString > s_EventNameContainer(rtl::Reference<GlobalEventConfig>(new GlobalEventConfig)->getElementNames());
if ( !pEventNameContainer )
{
SolarMutexGuard aGuard;
if ( !pEventNameContainer )
{
static uno::Sequence< OUString > aEventNameContainer = rtl::Reference<GlobalEventConfig>(new GlobalEventConfig)->getElementNames();
pEventNameContainer = &aEventNameContainer;
}
}
return *pEventNameContainer;
return s_EventNameContainer;
}