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;
}