[Libreoffice-commits] core.git: bridges/source cppuhelper/source cppu/source pyuno/source sal/rtl stoc/source stoc/test svl/source svx/source toolkit/source xmloff/source xmlsecurity/source

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Sun Nov 4 13:46:43 UTC 2018


 bridges/source/cpp_uno/gcc3_aix_powerpc/except.cxx        |   13 
 bridges/source/cpp_uno/gcc3_ios/except.cxx                |   13 
 bridges/source/cpp_uno/gcc3_linux_alpha/except.cxx        |   13 
 bridges/source/cpp_uno/gcc3_linux_arm/except.cxx          |   13 
 bridges/source/cpp_uno/gcc3_linux_hppa/except.cxx         |   13 
 bridges/source/cpp_uno/gcc3_linux_ia64/except.cxx         |   13 
 bridges/source/cpp_uno/gcc3_linux_intel/except.cxx        |   13 
 bridges/source/cpp_uno/gcc3_linux_m68k/except.cxx         |   13 
 bridges/source/cpp_uno/gcc3_linux_mips/except.cxx         |   13 
 bridges/source/cpp_uno/gcc3_linux_mips64/except.cxx       |   13 
 bridges/source/cpp_uno/gcc3_linux_powerpc/except.cxx      |   13 
 bridges/source/cpp_uno/gcc3_linux_powerpc64/except.cxx    |   13 
 bridges/source/cpp_uno/gcc3_linux_s390/except.cxx         |   13 
 bridges/source/cpp_uno/gcc3_linux_s390x/except.cxx        |   13 
 bridges/source/cpp_uno/gcc3_linux_sparc/except.cxx        |   13 
 bridges/source/cpp_uno/gcc3_linux_sparc64/except.cxx      |   13 
 bridges/source/cpp_uno/gcc3_macosx_x86-64/except.cxx      |   13 
 bridges/source/cpp_uno/gcc3_solaris_intel/except.cxx      |   13 
 bridges/source/cpp_uno/gcc3_solaris_sparc/except.cxx      |   13 
 bridges/source/cpp_uno/msvc_win32_intel/except.cxx        |   20 
 bridges/source/cpp_uno/msvc_win32_x86-64/except.cxx       |   38 -
 bridges/source/cpp_uno/shared/component.cxx               |   40 -
 cppu/source/uno/data.cxx                                  |   29 -
 cppuhelper/source/macro_expander.cxx                      |   18 
 cppuhelper/source/paths.cxx                               |   21 
 pyuno/source/module/pyuno_module.cxx                      |   30 -
 sal/rtl/bootstrap.cxx                                     |   32 -
 sal/rtl/uuid.cxx                                          |   17 
 stoc/source/invocation/invocation.cxx                     |   63 --
 stoc/source/proxy_factory/proxyfac.cxx                    |   33 -
 stoc/source/security/permissions.cxx                      |   18 
 stoc/test/testsmgr_cpnt.cxx                               |    9 
 svl/source/numbers/numfmuno.cxx                           |    2 
 svx/source/unodraw/unoshape.cxx                           |  320 ++++-------
 toolkit/source/awt/vclxmenu.cxx                           |   42 -
 toolkit/source/awt/vclxtoolkit.cxx                        |   26 
 toolkit/source/helper/property.cxx                        |  384 ++++++--------
 xmloff/source/forms/handler/form_handler_factory.cxx      |   20 
 xmlsecurity/source/framework/xmlsignaturetemplateimpl.cxx |    1 
 xmlsecurity/source/gpg/xmlsignature_gpgimpl.cxx           |    1 
 40 files changed, 477 insertions(+), 934 deletions(-)

New commits:
commit e128f7806961b391cfb265a1ce009b2e036622ca
Author:     Mike Kaganski <mike.kaganski at collabora.com>
AuthorDate: Sun Nov 4 15:28:37 2018 +0300
Commit:     Mike Kaganski <mike.kaganski at collabora.com>
CommitDate: Sun Nov 4 14:46:01 2018 +0100

    replace double-checked locking patterns with thread safe local statics
    
    Change-Id: I1bf67196e97411aeecc13ed4f91d1088a315e323
    Reviewed-on: https://gerrit.libreoffice.org/62839
    Tested-by: Jenkins
    Reviewed-by: Mike Kaganski <mike.kaganski at collabora.com>

diff --git a/bridges/source/cpp_uno/gcc3_aix_powerpc/except.cxx b/bridges/source/cpp_uno/gcc3_aix_powerpc/except.cxx
index bde3233e1491..e87590592888 100644
--- a/bridges/source/cpp_uno/gcc3_aix_powerpc/except.cxx
+++ b/bridges/source/cpp_uno/gcc3_aix_powerpc/except.cxx
@@ -225,17 +225,8 @@ void raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp )
         // destruct uno exception
         ::uno_any_destruct( pUnoExc, 0 );
         // avoiding locked counts
-        static RTTI * s_rtti = 0;
-        if (! s_rtti)
-        {
-            MutexGuard guard( Mutex::getGlobalMutex() );
-            if (! s_rtti)
-            {
-                static RTTI rtti_data;
-                s_rtti = &rtti_data;
-            }
-        }
-        rtti = (type_info *)s_rtti->getRTTI( (typelib_CompoundTypeDescription *) pTypeDescr );
+        static RTTI rtti_data;
+        rtti = (type_info*)rtti_data.getRTTI((typelib_CompoundTypeDescription*)pTypeDescr);
         TYPELIB_DANGER_RELEASE( pTypeDescr );
         if (! rtti)
             terminate();
diff --git a/bridges/source/cpp_uno/gcc3_ios/except.cxx b/bridges/source/cpp_uno/gcc3_ios/except.cxx
index ae0348957312..2ef8ef49b966 100644
--- a/bridges/source/cpp_uno/gcc3_ios/except.cxx
+++ b/bridges/source/cpp_uno/gcc3_ios/except.cxx
@@ -317,17 +317,8 @@ void raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp )
     // destruct uno exception
     ::uno_any_destruct( pUnoExc, nullptr );
     // avoiding locked counts
-    static RTTI * s_rtti = nullptr;
-    if (! s_rtti)
-    {
-        MutexGuard guard( Mutex::getGlobalMutex() );
-        if (! s_rtti)
-        {
-            static RTTI rtti_data;
-            s_rtti = &rtti_data;
-        }
-    }
-    rtti = s_rtti->getRTTI( reinterpret_cast<typelib_CompoundTypeDescription *>(pTypeDescr) );
+    static RTTI rtti_data;
+    rtti = rtti_data.getRTTI(reinterpret_cast<typelib_CompoundTypeDescription*>(pTypeDescr));
     TYPELIB_DANGER_RELEASE( pTypeDescr );
     assert(rtti && "### no rtti for throwing exception!");
     if (! rtti)
diff --git a/bridges/source/cpp_uno/gcc3_linux_alpha/except.cxx b/bridges/source/cpp_uno/gcc3_linux_alpha/except.cxx
index f0be82713583..9331665fab7f 100644
--- a/bridges/source/cpp_uno/gcc3_linux_alpha/except.cxx
+++ b/bridges/source/cpp_uno/gcc3_linux_alpha/except.cxx
@@ -223,17 +223,8 @@ void raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp )
     // destruct uno exception
     ::uno_any_destruct( pUnoExc, 0 );
     // avoiding locked counts
-    static RTTI * s_rtti = 0;
-    if (! s_rtti)
-    {
-        MutexGuard guard( Mutex::getGlobalMutex() );
-        if (! s_rtti)
-        {
-            static RTTI rtti_data;
-            s_rtti = &rtti_data;
-        }
-    }
-    rtti = (type_info *)s_rtti->getRTTI( (typelib_CompoundTypeDescription *) pTypeDescr );
+    static RTTI rtti_data;
+    rtti = (type_info*)rtti_data.getRTTI((typelib_CompoundTypeDescription*)pTypeDescr);
     TYPELIB_DANGER_RELEASE( pTypeDescr );
     if (! rtti)
         terminate();
diff --git a/bridges/source/cpp_uno/gcc3_linux_arm/except.cxx b/bridges/source/cpp_uno/gcc3_linux_arm/except.cxx
index 3d5fe694e70d..9de606a8c6bf 100644
--- a/bridges/source/cpp_uno/gcc3_linux_arm/except.cxx
+++ b/bridges/source/cpp_uno/gcc3_linux_arm/except.cxx
@@ -262,17 +262,8 @@ namespace CPPU_CURRENT_NAMESPACE
             // destruct uno exception
            ::uno_any_destruct( pUnoExc, 0 );
            // avoiding locked counts
-           static RTTI * s_rtti = 0;
-           if (! s_rtti)
-           {
-               MutexGuard guard( Mutex::getGlobalMutex() );
-               if (! s_rtti)
-               {
-                   static RTTI rtti_data;
-                   s_rtti = &rtti_data;
-               }
-           }
-           rtti = (type_info *)s_rtti->getRTTI( (typelib_CompoundTypeDescription *) pTypeDescr );
+           static RTTI rtti_data;
+           rtti = (type_info*)rtti_data.getRTTI((typelib_CompoundTypeDescription*)pTypeDescr);
            TYPELIB_DANGER_RELEASE( pTypeDescr );
            assert(rtti && "### no rtti for throwing exception!");
            if (! rtti)
diff --git a/bridges/source/cpp_uno/gcc3_linux_hppa/except.cxx b/bridges/source/cpp_uno/gcc3_linux_hppa/except.cxx
index c3033fb49a2a..b5339eb2b1b6 100644
--- a/bridges/source/cpp_uno/gcc3_linux_hppa/except.cxx
+++ b/bridges/source/cpp_uno/gcc3_linux_hppa/except.cxx
@@ -236,17 +236,8 @@ namespace CPPU_CURRENT_NAMESPACE
         // destruct uno exception
         ::uno_any_destruct( pUnoExc, 0 );
         // avoiding locked counts
-        static RTTI * s_rtti = 0;
-        if (! s_rtti)
-        {
-            MutexGuard guard( Mutex::getGlobalMutex() );
-            if (! s_rtti)
-            {
-                static RTTI rtti_data;
-                s_rtti = &rtti_data;
-            }
-        }
-        rtti = (type_info *)s_rtti->getRTTI( (typelib_CompoundTypeDescription *) pTypeDescr );
+        static RTTI rtti_data;
+        rtti = (type_info*)rtti_data.getRTTI((typelib_CompoundTypeDescription*)pTypeDescr);
         TYPELIB_DANGER_RELEASE( pTypeDescr );
         assert(rtti && "### no rtti for throwing exception!");
         if (! rtti)
diff --git a/bridges/source/cpp_uno/gcc3_linux_ia64/except.cxx b/bridges/source/cpp_uno/gcc3_linux_ia64/except.cxx
index 9145071519ce..1241aa02e1eb 100644
--- a/bridges/source/cpp_uno/gcc3_linux_ia64/except.cxx
+++ b/bridges/source/cpp_uno/gcc3_linux_ia64/except.cxx
@@ -222,17 +222,8 @@ void raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp )
     // destruct uno exception
     ::uno_any_destruct( pUnoExc, 0 );
     // avoiding locked counts
-    static RTTI * s_rtti = 0;
-    if (! s_rtti)
-    {
-        MutexGuard guard( Mutex::getGlobalMutex() );
-        if (! s_rtti)
-        {
-            static RTTI rtti_data;
-            s_rtti = &rtti_data;
-        }
-    }
-    rtti = (type_info *)s_rtti->getRTTI( (typelib_CompoundTypeDescription *) pTypeDescr );
+    static RTTI rtti_data;
+    rtti = (type_info*)rtti_data.getRTTI((typelib_CompoundTypeDescription*)pTypeDescr);
     TYPELIB_DANGER_RELEASE( pTypeDescr );
     if (! rtti)
         terminate();
diff --git a/bridges/source/cpp_uno/gcc3_linux_intel/except.cxx b/bridges/source/cpp_uno/gcc3_linux_intel/except.cxx
index 108c5c843744..ad3350d50fc5 100644
--- a/bridges/source/cpp_uno/gcc3_linux_intel/except.cxx
+++ b/bridges/source/cpp_uno/gcc3_linux_intel/except.cxx
@@ -239,17 +239,8 @@ void raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp )
     // destruct uno exception
     ::uno_any_destruct( pUnoExc, nullptr );
     // avoiding locked counts
-    static RTTI * s_rtti = nullptr;
-    if (! s_rtti)
-    {
-        MutexGuard guard( Mutex::getGlobalMutex() );
-        if (! s_rtti)
-        {
-            static RTTI rtti_data;
-            s_rtti = &rtti_data;
-        }
-    }
-    rtti = s_rtti->getRTTI(reinterpret_cast<typelib_CompoundTypeDescription *>(pTypeDescr));
+    static RTTI rtti_data;
+    rtti = rtti_data.getRTTI(reinterpret_cast<typelib_CompoundTypeDescription*>(pTypeDescr));
     TYPELIB_DANGER_RELEASE( pTypeDescr );
 #if !defined(ANDROID) // see TODO above
     assert(rtti && "### no rtti for throwing exception!");
diff --git a/bridges/source/cpp_uno/gcc3_linux_m68k/except.cxx b/bridges/source/cpp_uno/gcc3_linux_m68k/except.cxx
index cf2be0b0729d..047022f245c0 100644
--- a/bridges/source/cpp_uno/gcc3_linux_m68k/except.cxx
+++ b/bridges/source/cpp_uno/gcc3_linux_m68k/except.cxx
@@ -236,17 +236,8 @@ namespace CPPU_CURRENT_NAMESPACE
         // destruct uno exception
         ::uno_any_destruct( pUnoExc, 0 );
         // avoiding locked counts
-        static RTTI * s_rtti = 0;
-        if (! s_rtti)
-        {
-            MutexGuard guard( Mutex::getGlobalMutex() );
-            if (! s_rtti)
-            {
-                static RTTI rtti_data;
-                s_rtti = &rtti_data;
-            }
-        }
-        rtti = (type_info *)s_rtti->getRTTI( (typelib_CompoundTypeDescription *) pTypeDescr );
+        static RTTI rtti_data;
+        rtti = (type_info*)rtti_data.getRTTI((typelib_CompoundTypeDescription*)pTypeDescr);
         TYPELIB_DANGER_RELEASE( pTypeDescr );
         assert(rtti && "### no rtti for throwing exception!");
         if (! rtti)
diff --git a/bridges/source/cpp_uno/gcc3_linux_mips/except.cxx b/bridges/source/cpp_uno/gcc3_linux_mips/except.cxx
index a2d5cfb67c18..68e4e25f691d 100644
--- a/bridges/source/cpp_uno/gcc3_linux_mips/except.cxx
+++ b/bridges/source/cpp_uno/gcc3_linux_mips/except.cxx
@@ -233,17 +233,8 @@ void raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp )
     // destruct uno exception
     ::uno_any_destruct( pUnoExc, 0 );
     // avoiding locked counts
-    static RTTI * s_rtti = 0;
-    if (! s_rtti)
-    {
-        MutexGuard guard( Mutex::getGlobalMutex() );
-        if (! s_rtti)
-        {
-            static RTTI rtti_data;
-            s_rtti = &rtti_data;
-        }
-    }
-    rtti = (type_info *)s_rtti->getRTTI( (typelib_CompoundTypeDescription *) pTypeDescr );
+    static RTTI rtti_data;
+    rtti = (type_info*)rtti_data.getRTTI((typelib_CompoundTypeDescription*)pTypeDescr);
     TYPELIB_DANGER_RELEASE( pTypeDescr );
     assert(rtti && "### no rtti for throwing exception!");
     if (! rtti)
diff --git a/bridges/source/cpp_uno/gcc3_linux_mips64/except.cxx b/bridges/source/cpp_uno/gcc3_linux_mips64/except.cxx
index 8fc4d970bba7..ca94243d06fe 100644
--- a/bridges/source/cpp_uno/gcc3_linux_mips64/except.cxx
+++ b/bridges/source/cpp_uno/gcc3_linux_mips64/except.cxx
@@ -234,17 +234,8 @@ void raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp )
     // destruct uno exception
     ::uno_any_destruct( pUnoExc, 0 );
     // avoiding locked counts
-    static RTTI * s_rtti = 0;
-    if (! s_rtti)
-    {
-        MutexGuard guard( Mutex::getGlobalMutex() );
-        if (! s_rtti)
-        {
-            static RTTI rtti_data;
-            s_rtti = &rtti_data;
-        }
-    }
-    rtti = (type_info *)s_rtti->getRTTI( (typelib_CompoundTypeDescription *) pTypeDescr );
+    static RTTI rtti_data;
+    rtti = (type_info*)rtti_data.getRTTI((typelib_CompoundTypeDescription*)pTypeDescr);
     TYPELIB_DANGER_RELEASE( pTypeDescr );
     assert(rtti && "### no rtti for throwing exception!");
     if (! rtti)
diff --git a/bridges/source/cpp_uno/gcc3_linux_powerpc/except.cxx b/bridges/source/cpp_uno/gcc3_linux_powerpc/except.cxx
index 475c6f506b1d..ec26bc4969ee 100644
--- a/bridges/source/cpp_uno/gcc3_linux_powerpc/except.cxx
+++ b/bridges/source/cpp_uno/gcc3_linux_powerpc/except.cxx
@@ -224,17 +224,8 @@ void raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp )
     // destruct uno exception
     ::uno_any_destruct( pUnoExc, 0 );
     // avoiding locked counts
-    static RTTI * s_rtti = 0;
-    if (! s_rtti)
-    {
-        MutexGuard guard( Mutex::getGlobalMutex() );
-        if (! s_rtti)
-        {
-            static RTTI rtti_data;
-            s_rtti = &rtti_data;
-        }
-    }
-    rtti = (type_info *)s_rtti->getRTTI( (typelib_CompoundTypeDescription *) pTypeDescr );
+    static RTTI rtti_data;
+    rtti = (type_info*)rtti_data.getRTTI((typelib_CompoundTypeDescription*)pTypeDescr);
     TYPELIB_DANGER_RELEASE( pTypeDescr );
     if (! rtti)
         terminate();
diff --git a/bridges/source/cpp_uno/gcc3_linux_powerpc64/except.cxx b/bridges/source/cpp_uno/gcc3_linux_powerpc64/except.cxx
index 9145071519ce..1241aa02e1eb 100644
--- a/bridges/source/cpp_uno/gcc3_linux_powerpc64/except.cxx
+++ b/bridges/source/cpp_uno/gcc3_linux_powerpc64/except.cxx
@@ -222,17 +222,8 @@ void raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp )
     // destruct uno exception
     ::uno_any_destruct( pUnoExc, 0 );
     // avoiding locked counts
-    static RTTI * s_rtti = 0;
-    if (! s_rtti)
-    {
-        MutexGuard guard( Mutex::getGlobalMutex() );
-        if (! s_rtti)
-        {
-            static RTTI rtti_data;
-            s_rtti = &rtti_data;
-        }
-    }
-    rtti = (type_info *)s_rtti->getRTTI( (typelib_CompoundTypeDescription *) pTypeDescr );
+    static RTTI rtti_data;
+    rtti = (type_info*)rtti_data.getRTTI((typelib_CompoundTypeDescription*)pTypeDescr);
     TYPELIB_DANGER_RELEASE( pTypeDescr );
     if (! rtti)
         terminate();
diff --git a/bridges/source/cpp_uno/gcc3_linux_s390/except.cxx b/bridges/source/cpp_uno/gcc3_linux_s390/except.cxx
index f0be82713583..9331665fab7f 100644
--- a/bridges/source/cpp_uno/gcc3_linux_s390/except.cxx
+++ b/bridges/source/cpp_uno/gcc3_linux_s390/except.cxx
@@ -223,17 +223,8 @@ void raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp )
     // destruct uno exception
     ::uno_any_destruct( pUnoExc, 0 );
     // avoiding locked counts
-    static RTTI * s_rtti = 0;
-    if (! s_rtti)
-    {
-        MutexGuard guard( Mutex::getGlobalMutex() );
-        if (! s_rtti)
-        {
-            static RTTI rtti_data;
-            s_rtti = &rtti_data;
-        }
-    }
-    rtti = (type_info *)s_rtti->getRTTI( (typelib_CompoundTypeDescription *) pTypeDescr );
+    static RTTI rtti_data;
+    rtti = (type_info*)rtti_data.getRTTI((typelib_CompoundTypeDescription*)pTypeDescr);
     TYPELIB_DANGER_RELEASE( pTypeDescr );
     if (! rtti)
         terminate();
diff --git a/bridges/source/cpp_uno/gcc3_linux_s390x/except.cxx b/bridges/source/cpp_uno/gcc3_linux_s390x/except.cxx
index 52c8e603a992..386069b9fb31 100644
--- a/bridges/source/cpp_uno/gcc3_linux_s390x/except.cxx
+++ b/bridges/source/cpp_uno/gcc3_linux_s390x/except.cxx
@@ -223,17 +223,8 @@ void raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp )
     // destruct uno exception
     ::uno_any_destruct( pUnoExc, 0 );
     // avoiding locked counts
-    static RTTI * s_rtti = 0;
-    if (! s_rtti)
-    {
-        MutexGuard guard( Mutex::getGlobalMutex() );
-        if (! s_rtti)
-        {
-            static RTTI rtti_data;
-            s_rtti = &rtti_data;
-        }
-    }
-    rtti = (type_info *)s_rtti->getRTTI( (typelib_CompoundTypeDescription *) pTypeDescr );
+    static RTTI rtti_data;
+    rtti = (type_info*)rtti_data.getRTTI((typelib_CompoundTypeDescription*)pTypeDescr);
     TYPELIB_DANGER_RELEASE( pTypeDescr );
     if (! rtti)
         terminate();
diff --git a/bridges/source/cpp_uno/gcc3_linux_sparc/except.cxx b/bridges/source/cpp_uno/gcc3_linux_sparc/except.cxx
index 2535da049848..a87eeac162db 100644
--- a/bridges/source/cpp_uno/gcc3_linux_sparc/except.cxx
+++ b/bridges/source/cpp_uno/gcc3_linux_sparc/except.cxx
@@ -234,17 +234,8 @@ void raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp )
     // destruct uno exception
     ::uno_any_destruct( pUnoExc, 0 );
     // avoiding locked counts
-    static RTTI * s_rtti = 0;
-    if (! s_rtti)
-    {
-        MutexGuard guard( Mutex::getGlobalMutex() );
-        if (! s_rtti)
-        {
-            static RTTI rtti_data;
-            s_rtti = &rtti_data;
-        }
-    }
-    rtti = (type_info *)s_rtti->getRTTI( (typelib_CompoundTypeDescription *) pTypeDescr );
+    static RTTI rtti_data;
+    rtti = (type_info*)rtti_data.getRTTI((typelib_CompoundTypeDescription*)pTypeDescr);
     TYPELIB_DANGER_RELEASE( pTypeDescr );
     assert(rtti);
     if (! rtti)
diff --git a/bridges/source/cpp_uno/gcc3_linux_sparc64/except.cxx b/bridges/source/cpp_uno/gcc3_linux_sparc64/except.cxx
index 2535da049848..a87eeac162db 100644
--- a/bridges/source/cpp_uno/gcc3_linux_sparc64/except.cxx
+++ b/bridges/source/cpp_uno/gcc3_linux_sparc64/except.cxx
@@ -234,17 +234,8 @@ void raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp )
     // destruct uno exception
     ::uno_any_destruct( pUnoExc, 0 );
     // avoiding locked counts
-    static RTTI * s_rtti = 0;
-    if (! s_rtti)
-    {
-        MutexGuard guard( Mutex::getGlobalMutex() );
-        if (! s_rtti)
-        {
-            static RTTI rtti_data;
-            s_rtti = &rtti_data;
-        }
-    }
-    rtti = (type_info *)s_rtti->getRTTI( (typelib_CompoundTypeDescription *) pTypeDescr );
+    static RTTI rtti_data;
+    rtti = (type_info*)rtti_data.getRTTI((typelib_CompoundTypeDescription*)pTypeDescr);
     TYPELIB_DANGER_RELEASE( pTypeDescr );
     assert(rtti);
     if (! rtti)
diff --git a/bridges/source/cpp_uno/gcc3_macosx_x86-64/except.cxx b/bridges/source/cpp_uno/gcc3_macosx_x86-64/except.cxx
index 12058c53a2a2..2df4356c81b5 100644
--- a/bridges/source/cpp_uno/gcc3_macosx_x86-64/except.cxx
+++ b/bridges/source/cpp_uno/gcc3_macosx_x86-64/except.cxx
@@ -317,17 +317,8 @@ void raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp )
     // destruct uno exception
     ::uno_any_destruct( pUnoExc, nullptr );
     // avoiding locked counts
-    static RTTI * s_rtti = nullptr;
-    if (! s_rtti)
-    {
-        MutexGuard guard( Mutex::getGlobalMutex() );
-        if (! s_rtti)
-        {
-            static RTTI rtti_data;
-            s_rtti = &rtti_data;
-        }
-    }
-    rtti = s_rtti->getRTTI( reinterpret_cast<typelib_CompoundTypeDescription *>(pTypeDescr) );
+    static RTTI rtti_data;
+    rtti = rtti_data.getRTTI(reinterpret_cast<typelib_CompoundTypeDescription*>(pTypeDescr));
     TYPELIB_DANGER_RELEASE( pTypeDescr );
     assert(rtti && "### no rtti for throwing exception!");
     if (! rtti)
diff --git a/bridges/source/cpp_uno/gcc3_solaris_intel/except.cxx b/bridges/source/cpp_uno/gcc3_solaris_intel/except.cxx
index 263733677158..1eb183aa7c1f 100644
--- a/bridges/source/cpp_uno/gcc3_solaris_intel/except.cxx
+++ b/bridges/source/cpp_uno/gcc3_solaris_intel/except.cxx
@@ -236,17 +236,8 @@ void raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp )
     // destruct uno exception
     ::uno_any_destruct( pUnoExc, 0 );
     // avoiding locked counts
-    static RTTI * s_rtti = 0;
-    if (! s_rtti)
-    {
-        MutexGuard guard( Mutex::getGlobalMutex() );
-        if (! s_rtti)
-        {
-            static RTTI rtti_data;
-            s_rtti = &rtti_data;
-        }
-    }
-    rtti = (type_info *)s_rtti->getRTTI( (typelib_CompoundTypeDescription *) pTypeDescr );
+    static RTTI rtti_data;
+    rtti = (type_info*)rtti_data.getRTTI((typelib_CompoundTypeDescription*)pTypeDescr);
     TYPELIB_DANGER_RELEASE( pTypeDescr );
     assert(rtti);
     if (! rtti)
diff --git a/bridges/source/cpp_uno/gcc3_solaris_sparc/except.cxx b/bridges/source/cpp_uno/gcc3_solaris_sparc/except.cxx
index 6545e4820f11..752b03e619f5 100644
--- a/bridges/source/cpp_uno/gcc3_solaris_sparc/except.cxx
+++ b/bridges/source/cpp_uno/gcc3_solaris_sparc/except.cxx
@@ -233,17 +233,8 @@ void raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp )
     // destruct uno exception
     ::uno_any_destruct( pUnoExc, 0 );
     // avoiding locked counts
-    static RTTI * s_rtti = 0;
-    if (! s_rtti)
-    {
-        MutexGuard guard( Mutex::getGlobalMutex() );
-        if (! s_rtti)
-        {
-            static RTTI rtti_data;
-            s_rtti = &rtti_data;
-        }
-    }
-    rtti = (type_info *)s_rtti->getRTTI( (typelib_CompoundTypeDescription *) pTypeDescr );
+    static RTTI rtti_data;
+    rtti = (type_info*)rtti_data.getRTTI((typelib_CompoundTypeDescription*)pTypeDescr);
     TYPELIB_DANGER_RELEASE( pTypeDescr );
     assert(rtti && "### no rtti for throwing exception!");
     if (! rtti)
diff --git a/bridges/source/cpp_uno/msvc_win32_intel/except.cxx b/bridges/source/cpp_uno/msvc_win32_intel/except.cxx
index 8e6a1795f898..805eae40e5de 100644
--- a/bridges/source/cpp_uno/msvc_win32_intel/except.cxx
+++ b/bridges/source/cpp_uno/msvc_win32_intel/except.cxx
@@ -384,15 +384,7 @@ ExceptionInfos::~ExceptionInfos() throw ()
 
 void * ExceptionInfos::getRaiseInfo( typelib_TypeDescription * pTypeDescr ) throw ()
 {
-    static ExceptionInfos * s_pInfos = 0;
-    if (! s_pInfos)
-    {
-        MutexGuard aGuard( Mutex::getGlobalMutex() );
-        if (! s_pInfos)
-        {
-            s_pInfos = new ExceptionInfos();
-        }
-    }
+    static ExceptionInfos* s_pInfos = new ExceptionInfos();
 
     assert( pTypeDescr &&
                 (pTypeDescr->eTypeClass == typelib_TypeClass_STRUCT ||
@@ -427,15 +419,7 @@ void * ExceptionInfos::getRaiseInfo( typelib_TypeDescription * pTypeDescr ) thro
 
 type_info * msci_getRTTI( OUString const & rUNOname )
 {
-    static RTTInfos * s_pRTTIs = 0;
-    if (! s_pRTTIs)
-    {
-        MutexGuard aGuard( Mutex::getGlobalMutex() );
-        if (! s_pRTTIs)
-        {
-            s_pRTTIs = new RTTInfos();
-        }
-    }
+    static RTTInfos* s_pRTTIs = new RTTInfos();
     return s_pRTTIs->getRTTI( rUNOname );
 }
 
diff --git a/bridges/source/cpp_uno/msvc_win32_x86-64/except.cxx b/bridges/source/cpp_uno/msvc_win32_x86-64/except.cxx
index 27879b066a59..090ec5c13e38 100644
--- a/bridges/source/cpp_uno/msvc_win32_x86-64/except.cxx
+++ b/bridges/source/cpp_uno/msvc_win32_x86-64/except.cxx
@@ -681,19 +681,13 @@ ExceptionInfos::ExceptionInfos() throw ()
 
 RaiseInfo * ExceptionInfos::getRaiseInfo( typelib_TypeDescription * pTD ) throw ()
 {
-    static ExceptionInfos * s_pInfos = nullptr;
-    if (! s_pInfos)
-    {
-        MutexGuard aGuard( Mutex::getGlobalMutex() );
-        if (! s_pInfos)
-        {
-            SYSTEM_INFO systemInfo;
-            GetSystemInfo( &systemInfo );
-            allocationGranularity = systemInfo.dwAllocationGranularity;
+    static ExceptionInfos* s_pInfos = []() {
+        SYSTEM_INFO systemInfo;
+        GetSystemInfo(&systemInfo);
+        allocationGranularity = systemInfo.dwAllocationGranularity;
 
-            s_pInfos = new ExceptionInfos();
-        }
-    }
+        return new ExceptionInfos();
+    }();
 
     assert( pTD &&
                 (pTD->eTypeClass == typelib_TypeClass_STRUCT ||
@@ -726,29 +720,13 @@ RaiseInfo * ExceptionInfos::getRaiseInfo( typelib_TypeDescription * pTD ) throw
 type_info * mscx_getRTTI(
     OUString const & rUNOname )
 {
-    static RTTInfos * s_pRTTIs = nullptr;
-    if (! s_pRTTIs)
-    {
-        MutexGuard aGuard( Mutex::getGlobalMutex() );
-        if (! s_pRTTIs)
-        {
-            s_pRTTIs = new RTTInfos();
-        }
-    }
+    static RTTInfos* s_pRTTIs = new RTTInfos();
     return s_pRTTIs->getRTTI( rUNOname );
 }
 int mscx_getRTTI_len(
     OUString const & rUNOname)
 {
-    static RTTInfos * s_pRTTIs = nullptr;
-    if (!s_pRTTIs)
-    {
-        MutexGuard aGuard(Mutex::getGlobalMutex());
-        if (!s_pRTTIs)
-        {
-            s_pRTTIs = new RTTInfos();
-        }
-    }
+    static RTTInfos* s_pRTTIs = new RTTInfos();
     return s_pRTTIs->getRTTI_len(rUNOname);
 }
 
diff --git a/bridges/source/cpp_uno/shared/component.cxx b/bridges/source/cpp_uno/shared/component.cxx
index 7b380a425792..b8f4d7f6511e 100644
--- a/bridges/source/cpp_uno/shared/component.cxx
+++ b/bridges/source/cpp_uno/shared/component.cxx
@@ -38,39 +38,21 @@
 
 namespace {
 
-#if (defined(__GNUC__) && defined(__APPLE__))
-static OUString * s_pStaticOidPart = nullptr;
-#endif
-
 const OUString & cppu_cppenv_getStaticOIdPart()
 {
-#if ! (defined(__GNUC__) && defined(__APPLE__))
-    static OUString * s_pStaticOidPart = nullptr;
-#endif
-    if (! s_pStaticOidPart)
-    {
-        ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
-        if (! s_pStaticOidPart)
+    static OUString s_aStaticOidPart = []() {
+        OUStringBuffer aRet(64);
+        aRet.append("];");
+        // good guid
+        sal_uInt8 ar[16];
+        ::rtl_getGlobalProcessId(ar);
+        for (unsigned char i : ar)
         {
-            OUStringBuffer aRet( 64 );
-            aRet.append( "];" );
-            // good guid
-            sal_uInt8 ar[16];
-            ::rtl_getGlobalProcessId( ar );
-            for (unsigned char i : ar)
-            {
-                aRet.append( static_cast<sal_Int32>(i), 16 );
-            }
-#if (defined(__GNUC__) && defined(__APPLE__))
-            s_pStaticOidPart = new OUString( aRet.makeStringAndClear() );
-#else
-            static OUString s_aStaticOidPart(
-                aRet.makeStringAndClear() );
-            s_pStaticOidPart = &s_aStaticOidPart;
-#endif
+            aRet.append(static_cast<sal_Int32>(i), 16);
         }
-    }
-    return *s_pStaticOidPart;
+        return aRet.makeStringAndClear();
+    }();
+    return s_aStaticOidPart;
 }
 
 }
diff --git a/cppu/source/uno/data.cxx b/cppu/source/uno/data.cxx
index 68d114dc940f..6c93fced581d 100644
--- a/cppu/source/uno/data.cxx
+++ b/cppu/source/uno/data.cxx
@@ -44,22 +44,19 @@ typelib_TypeDescriptionReference * g_pVoidType = nullptr;
 void * binuno_queryInterface( void * pUnoI, typelib_TypeDescriptionReference * pDestType )
 {
     // init queryInterface() td
-    static typelib_TypeDescription * g_pQITD = nullptr;
-    if (nullptr == g_pQITD)
-    {
-        MutexGuard aGuard( Mutex::getGlobalMutex() );
-        if (nullptr == g_pQITD)
-        {
-            typelib_TypeDescriptionReference * type_XInterface =
-                * typelib_static_type_getByTypeClass( typelib_TypeClass_INTERFACE );
-            typelib_InterfaceTypeDescription * pTXInterfaceDescr = nullptr;
-            TYPELIB_DANGER_GET( reinterpret_cast<typelib_TypeDescription **>(&pTXInterfaceDescr), type_XInterface );
-            assert(pTXInterfaceDescr->ppAllMembers);
-            typelib_typedescriptionreference_getDescription(
-                &g_pQITD, pTXInterfaceDescr->ppAllMembers[ 0 ] );
-            TYPELIB_DANGER_RELEASE( &pTXInterfaceDescr->aBase );
-        }
-    }
+    static typelib_TypeDescription* g_pQITD = []() {
+        typelib_TypeDescriptionReference* type_XInterface
+            = *typelib_static_type_getByTypeClass(typelib_TypeClass_INTERFACE);
+        typelib_InterfaceTypeDescription* pTXInterfaceDescr = nullptr;
+        TYPELIB_DANGER_GET(reinterpret_cast<typelib_TypeDescription**>(&pTXInterfaceDescr),
+                           type_XInterface);
+        assert(pTXInterfaceDescr->ppAllMembers);
+        typelib_TypeDescription* pQITD = nullptr;
+        typelib_typedescriptionreference_getDescription(&pQITD,
+                                                        pTXInterfaceDescr->ppAllMembers[0]);
+        TYPELIB_DANGER_RELEASE(&pTXInterfaceDescr->aBase);
+        return pQITD;
+    }();
 
     uno_Any aRet, aExc;
     uno_Any * pExc = &aExc;
diff --git a/cppuhelper/source/macro_expander.cxx b/cppuhelper/source/macro_expander.cxx
index 7d9b763aac05..a147d03a3e0d 100644
--- a/cppuhelper/source/macro_expander.cxx
+++ b/cppuhelper/source/macro_expander.cxx
@@ -51,23 +51,7 @@ namespace cppu
 
 static Bootstrap const & get_unorc()
 {
-    static rtlBootstrapHandle s_bstrap = nullptr;
-    if (! s_bstrap)
-    {
-        OUString iniName(getUnoIniUri());
-        rtlBootstrapHandle bstrap = rtl_bootstrap_args_open( iniName.pData );
-
-        ClearableMutexGuard guard( Mutex::getGlobalMutex() );
-        if (s_bstrap)
-        {
-            guard.clear();
-            rtl_bootstrap_args_close( bstrap );
-        }
-        else
-        {
-            s_bstrap = bstrap;
-        }
-    }
+    static rtlBootstrapHandle s_bstrap = rtl_bootstrap_args_open(getUnoIniUri().pData);
     return *reinterpret_cast<Bootstrap const *>(&s_bstrap);
 }
 
diff --git a/cppuhelper/source/paths.cxx b/cppuhelper/source/paths.cxx
index 6b7dcd443038..7ddd8b72d379 100644
--- a/cppuhelper/source/paths.cxx
+++ b/cppuhelper/source/paths.cxx
@@ -38,22 +38,17 @@ namespace {
 
 #ifndef ANDROID
 OUString get_this_libpath() {
-    static OUString s_uri;
-    if (s_uri.isEmpty()) {
+    static OUString s_uri = []() {
         OUString uri;
-        osl::Module::getUrlFromAddress(
-            reinterpret_cast< oslGenericFunction >(get_this_libpath), uri);
+        osl::Module::getUrlFromAddress(reinterpret_cast<oslGenericFunction>(get_this_libpath), uri);
         sal_Int32 i = uri.lastIndexOf('/');
-        if (i == -1) {
-            throw css::uno::DeploymentException(
-                "URI " + uri + " is expected to contain a slash");
-        }
-        uri = uri.copy(0, i);
-        osl::MutexGuard guard(osl::Mutex::getGlobalMutex());
-        if (s_uri.isEmpty()) {
-            s_uri = uri;
+        if (i == -1)
+        {
+            throw css::uno::DeploymentException("URI " + uri + " is expected to contain a slash");
         }
-    }
+        return uri.copy(0, i);
+    }();
+
     return s_uri;
 }
 #endif
diff --git a/pyuno/source/module/pyuno_module.cxx b/pyuno/source/module/pyuno_module.cxx
index 0f08ebc53367..8456abfbfff2 100644
--- a/pyuno/source/module/pyuno_module.cxx
+++ b/pyuno/source/module/pyuno_module.cxx
@@ -202,26 +202,20 @@ void fillStruct(
 
 OUString getLibDir()
 {
-    static OUString *pLibDir;
-    if( !pLibDir )
-    {
-        osl::MutexGuard guard( osl::Mutex::getGlobalMutex() );
-        if( ! pLibDir )
-        {
-            static OUString libDir;
+    static OUString sLibDir = []() {
+        OUString libDir;
 
-            // workarounds the $(ORIGIN) until it is available
-            if( Module::getUrlFromAddress(
-                    reinterpret_cast< oslGenericFunction >(getLibDir), libDir ) )
-            {
-                libDir = libDir.copy( 0, libDir.lastIndexOf('/') );
-                OUString name ( "PYUNOLIBDIR" );
-                rtl_bootstrap_set( name.pData, libDir.pData );
-            }
-            pLibDir = &libDir;
+        // workarounds the $(ORIGIN) until it is available
+        if (Module::getUrlFromAddress(reinterpret_cast<oslGenericFunction>(getLibDir), libDir))
+        {
+            libDir = libDir.copy(0, libDir.lastIndexOf('/'));
+            OUString name("PYUNOLIBDIR");
+            rtl_bootstrap_set(name.pData, libDir.pData);
         }
-    }
-    return *pLibDir;
+        return libDir;
+    }();
+
+    return sLibDir;
 }
 
 void raisePySystemException( const char * exceptionType, const OUString & message )
diff --git a/sal/rtl/bootstrap.cxx b/sal/rtl/bootstrap.cxx
index 5e0769c99630..897de890d890 100644
--- a/sal/rtl/bootstrap.cxx
+++ b/sal/rtl/bootstrap.cxx
@@ -227,10 +227,7 @@ static void getExecutableDirectory_Impl(rtl_uString ** ppDirURL)
 
 static OUString & getIniFileName_Impl()
 {
-    osl::MutexGuard guard(osl::Mutex::getGlobalMutex());
-    static OUString *pStaticName = nullptr;
-    if (!pStaticName)
-    {
+    static OUString aStaticName = []() {
         OUString fileName;
 
 #if defined IOS
@@ -284,14 +281,10 @@ static OUString & getIniFileName_Impl()
         }
 #endif
 
-        static OUString theFileName;
-        if (fileName.getLength())
-            theFileName = fileName;
-
-        pStaticName = &theFileName;
-    }
+        return fileName;
+    }();
 
-    return *pStaticName;
+    return aStaticName;
 }
 
 // ensure the given file url has no final slash
@@ -395,20 +388,17 @@ namespace {
 
 Bootstrap_Impl * get_static_bootstrap_handle()
 {
-    osl::MutexGuard guard(osl::Mutex::getGlobalMutex());
-    static Bootstrap_Impl * s_handle = nullptr;
-    if (!s_handle)
-    {
+    static Bootstrap_Impl* s_handle = []() {
         OUString iniName(getIniFileName_Impl());
-        s_handle = static_cast< Bootstrap_Impl * >(
-            rtl_bootstrap_args_open(iniName.pData));
-        if (!s_handle)
+        Bootstrap_Impl* that = static_cast<Bootstrap_Impl*>(rtl_bootstrap_args_open(iniName.pData));
+        if (!that)
         {
-            Bootstrap_Impl * that = new Bootstrap_Impl( iniName );
+            that = new Bootstrap_Impl(iniName);
             ++that->_nRefCount;
-            s_handle = that;
         }
-    }
+        return that;
+    }();
+
     return s_handle;
 }
 
diff --git a/sal/rtl/uuid.cxx b/sal/rtl/uuid.cxx
index 632b842f6391..bb9490ef8b99 100644
--- a/sal/rtl/uuid.cxx
+++ b/sal/rtl/uuid.cxx
@@ -93,19 +93,18 @@ extern "C" void SAL_CALL rtl_createUuid(sal_uInt8 *pTargetUUID ,
                                         SAL_UNUSED_PARAMETER sal_Bool)
 {
     {
-        osl::MutexGuard g(osl::Mutex::getGlobalMutex());
-        static rtlRandomPool pool = nullptr;
-        if (!pool)
-        {
-            pool = rtl_random_createPool();
-            if (!pool)
+        static rtlRandomPool pool = []() {
+            rtlRandomPool aPool = rtl_random_createPool();
+            if (!aPool)
             {
                 abort();
-                    // only possible way to signal failure here (rtl_createUuid
-                    // being part of a fixed C API)
+                // only possible way to signal failure here (rtl_createUuid
+                // being part of a fixed C API)
             }
-        }
+            return aPool;
+        }();
 
+        osl::MutexGuard g(osl::Mutex::getGlobalMutex());
         if (rtl_random_getBytes(pool, pTargetUUID, 16) != rtl_Random_E_None)
         {
             abort();
diff --git a/stoc/source/invocation/invocation.cxx b/stoc/source/invocation/invocation.cxx
index 6cc658415bd6..271b90651400 100644
--- a/stoc/source/invocation/invocation.cxx
+++ b/stoc/source/invocation/invocation.cxx
@@ -970,76 +970,65 @@ void Invocation_Impl::fillInfoForMethod
 // XTypeProvider
 Sequence< Type > SAL_CALL Invocation_Impl::getTypes()
 {
-    static Sequence< Type > const * s_pTypes = nullptr;
-    if (! s_pTypes)
-    {
-        Sequence< Type > types( 4 + 10 );
-        Type * pTypes = types.getArray();
+    static Sequence<Type> s_types = [this]() {
+        Sequence<Type> types(4 + 10);
+        Type* pTypes = types.getArray();
         sal_Int32 n = 0;
 
-        pTypes[ n++ ] = cppu::UnoType<XTypeProvider>::get();
-        pTypes[ n++ ] = cppu::UnoType<XWeak>::get();
-        pTypes[ n++ ] = cppu::UnoType<XInvocation>::get();
-        pTypes[ n++ ] = cppu::UnoType<XMaterialHolder>::get();
+        pTypes[n++] = cppu::UnoType<XTypeProvider>::get();
+        pTypes[n++] = cppu::UnoType<XWeak>::get();
+        pTypes[n++] = cppu::UnoType<XInvocation>::get();
+        pTypes[n++] = cppu::UnoType<XMaterialHolder>::get();
 
         // Invocation does not support XExactName if direct object supports
         // XInvocation, but not XExactName.
-        if ((_xDirect.is() && _xENDirect.is()) ||
-            (!_xDirect.is() && _xENIntrospection.is()))
+        if ((_xDirect.is() && _xENDirect.is()) || (!_xDirect.is() && _xENIntrospection.is()))
         {
-            pTypes[ n++ ] = cppu::UnoType<XExactName>::get();
+            pTypes[n++] = cppu::UnoType<XExactName>::get();
         }
-        if( _xNameContainer.is() )
+        if (_xNameContainer.is())
         {
-            pTypes[ n++ ] = cppu::UnoType<XNameContainer>::get();
+            pTypes[n++] = cppu::UnoType<XNameContainer>::get();
         }
-        if( _xNameReplace.is() )
+        if (_xNameReplace.is())
         {
-            pTypes[ n++ ] = cppu::UnoType<XNameReplace>::get();
+            pTypes[n++] = cppu::UnoType<XNameReplace>::get();
         }
-        if( _xNameAccess.is() )
+        if (_xNameAccess.is())
         {
-            pTypes[ n++ ] = cppu::UnoType<XNameAccess>::get();
+            pTypes[n++] = cppu::UnoType<XNameAccess>::get();
         }
         if (_xIndexContainer.is())
         {
-            pTypes[ n++ ] = cppu::UnoType<XIndexContainer>::get();
+            pTypes[n++] = cppu::UnoType<XIndexContainer>::get();
         }
         if (_xIndexReplace.is())
         {
-            pTypes[ n++ ] = cppu::UnoType<XIndexReplace>::get();
+            pTypes[n++] = cppu::UnoType<XIndexReplace>::get();
         }
         if (_xIndexAccess.is())
         {
-            pTypes[ n++ ] = cppu::UnoType<XIndexAccess>::get();
+            pTypes[n++] = cppu::UnoType<XIndexAccess>::get();
         }
         if (_xEnumerationAccess.is())
         {
-            pTypes[ n++ ] = cppu::UnoType<XEnumerationAccess>::get();
+            pTypes[n++] = cppu::UnoType<XEnumerationAccess>::get();
         }
         if (_xElementAccess.is())
         {
-            pTypes[ n++ ] = cppu::UnoType<XElementAccess>::get();
+            pTypes[n++] = cppu::UnoType<XElementAccess>::get();
         }
         // Invocation does not support XInvocation2, if direct object supports
         // XInvocation, but not XInvocation2.
-        if ( ( _xDirect.is() && _xDirect2.is()) ||
-             (!_xDirect.is() && _xIntrospectionAccess.is() ) )
+        if ((_xDirect.is() && _xDirect2.is()) || (!_xDirect.is() && _xIntrospectionAccess.is()))
         {
-            pTypes[ n++ ] = cppu::UnoType<XInvocation2>::get();
+            pTypes[n++] = cppu::UnoType<XInvocation2>::get();
         }
 
-        types.realloc( n );
-
-        // store types
-        MutexGuard guard( Mutex::getGlobalMutex() );
-        if (! s_pTypes)
-        {
-            static Sequence< Type > s_types( types );
-            s_pTypes = &s_types;
-        }
-    }
-    return *s_pTypes;
+        types.realloc(n);
+        return types;
+    }();
+    return s_types;
 }
 
 Sequence< sal_Int8 > SAL_CALL Invocation_Impl::getImplementationId(  )
diff --git a/stoc/source/proxy_factory/proxyfac.cxx b/stoc/source/proxy_factory/proxyfac.cxx
index 57b0f2a05418..b85ed4907b9c 100644
--- a/stoc/source/proxy_factory/proxyfac.cxx
+++ b/stoc/source/proxy_factory/proxyfac.cxx
@@ -93,29 +93,16 @@ UnoInterfaceReference FactoryImpl::binuno_queryInterface(
     typelib_InterfaceTypeDescription * pTypeDescr )
 {
     // init queryInterface() td
-    static typelib_TypeDescription * s_pQITD = nullptr;
-    if (s_pQITD == nullptr)
-    {
-        ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
-        if (s_pQITD == nullptr)
-        {
-            typelib_TypeDescription * pTXInterfaceDescr = nullptr;
-            TYPELIB_DANGER_GET(
-                &pTXInterfaceDescr,
-                cppu::UnoType<XInterface>::get().getTypeLibType() );
-            typelib_TypeDescription * pQITD = nullptr;
-            typelib_typedescriptionreference_getDescription(
-                &pQITD, reinterpret_cast< typelib_InterfaceTypeDescription * >(
-                    pTXInterfaceDescr )->ppAllMembers[ 0 ] );
-            TYPELIB_DANGER_RELEASE( pTXInterfaceDescr );
-            OSL_DOUBLE_CHECKED_LOCKING_MEMORY_BARRIER();
-            s_pQITD = pQITD;
-        }
-    }
-    else
-    {
-        OSL_DOUBLE_CHECKED_LOCKING_MEMORY_BARRIER();
-    }
+    static typelib_TypeDescription* s_pQITD = []() {
+        typelib_TypeDescription* pTXInterfaceDescr = nullptr;
+        TYPELIB_DANGER_GET(&pTXInterfaceDescr, cppu::UnoType<XInterface>::get().getTypeLibType());
+        typelib_TypeDescription* pQITD = nullptr;
+        typelib_typedescriptionreference_getDescription(
+            &pQITD, reinterpret_cast<typelib_InterfaceTypeDescription*>(pTXInterfaceDescr)
+                        ->ppAllMembers[0]);
+        TYPELIB_DANGER_RELEASE(pTXInterfaceDescr);
+        return pQITD;
+    }();
 
     void * args[ 1 ];
     args[ 0 ] = &reinterpret_cast< typelib_TypeDescription * >(
diff --git a/stoc/source/security/permissions.cxx b/stoc/source/security/permissions.cxx
index 1390275b3246..d8a4ac9b0c70 100644
--- a/stoc/source/security/permissions.cxx
+++ b/stoc/source/security/permissions.cxx
@@ -285,20 +285,12 @@ char const * FilePermission::s_actions [] = { "read", "write", "execute", "delet
 
 static OUString const & getWorkingDir()
 {
-    static OUString * s_workingDir = nullptr;
-    if (! s_workingDir)
-    {
+    static OUString s_workingDir = []() {
         OUString workingDir;
-        ::osl_getProcessWorkingDir( &workingDir.pData );
-
-        MutexGuard guard( Mutex::getGlobalMutex() );
-        if (! s_workingDir)
-        {
-            static OUString s_dir( workingDir );
-            s_workingDir = &s_dir;
-        }
-    }
-    return *s_workingDir;
+        ::osl_getProcessWorkingDir(&workingDir.pData);
+        return workingDir;
+    }();
+    return s_workingDir;
 }
 
 FilePermission::FilePermission(
diff --git a/stoc/test/testsmgr_cpnt.cxx b/stoc/test/testsmgr_cpnt.cxx
index 638ad81c1cce..ddb6e4ca1b29 100644
--- a/stoc/test/testsmgr_cpnt.cxx
+++ b/stoc/test/testsmgr_cpnt.cxx
@@ -64,13 +64,8 @@ using namespace cppu;
 
 Reference<XMultiServiceFactory> getProcessServiceManager()
 {
-    Reference<XMultiServiceFactory > s_x;
-    if (! s_x.is())
-    {
-        MutexGuard aGuard( Mutex::getGlobalMutex() );
-        if (! s_x.is())
-            s_x = createRegistryServiceFactory( OUString("stoctest.rdb"), sal_False );
-    }
+    static Reference<XMultiServiceFactory> s_x(
+        createRegistryServiceFactory(OUString("stoctest.rdb"), sal_False));
     return s_x;
 }
 
diff --git a/svl/source/numbers/numfmuno.cxx b/svl/source/numbers/numfmuno.cxx
index 52ca8e18d696..f290d8cb37ec 100644
--- a/svl/source/numbers/numfmuno.cxx
+++ b/svl/source/numbers/numfmuno.cxx
@@ -598,7 +598,6 @@ SvNumberFormatObj::~SvNumberFormatObj()
 
 uno::Reference<beans::XPropertySetInfo> SAL_CALL SvNumberFormatObj::getPropertySetInfo()
 {
-    ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
     static uno::Reference<beans::XPropertySetInfo> aRef =
         new SfxItemPropertySetInfo( lcl_GetNumberFormatPropertyMap() );
     return aRef;
@@ -808,7 +807,6 @@ SvNumberFormatSettingsObj::~SvNumberFormatSettingsObj()
 
 uno::Reference<beans::XPropertySetInfo> SAL_CALL SvNumberFormatSettingsObj::getPropertySetInfo()
 {
-    ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
     static uno::Reference<beans::XPropertySetInfo> aRef =
         new SfxItemPropertySetInfo( lcl_GetNumberSettingsPropertyMap() );
     return aRef;
diff --git a/svx/source/unodraw/unoshape.cxx b/svx/source/unodraw/unoshape.cxx
index 5bc8092bf346..5314fffc2050 100644
--- a/svx/source/unodraw/unoshape.cxx
+++ b/svx/source/unodraw/unoshape.cxx
@@ -787,207 +787,135 @@ uno::Sequence< uno::Type > SvxShape::_getTypes()
     case OBJ_MEDIA:
     case OBJ_TABLE:
         {
-            static css::uno::Sequence< css::uno::Type > aTypeSequence;
+            static uno::Sequence<uno::Type> aTypeSequence{
+                cppu::UnoType<drawing::XShape>::get(),
+                cppu::UnoType<lang::XComponent>::get(),
+                cppu::UnoType<beans::XPropertySet>::get(),
+                cppu::UnoType<beans::XMultiPropertySet>::get(),
+                cppu::UnoType<beans::XPropertyState>::get(),
+                cppu::UnoType<beans::XMultiPropertyStates>::get(),
+                cppu::UnoType<drawing::XGluePointsSupplier>::get(),
+                cppu::UnoType<container::XChild>::get(),
+                cppu::UnoType<lang::XServiceInfo>::get(),
+                cppu::UnoType<lang::XTypeProvider>::get(),
+                cppu::UnoType<lang::XUnoTunnel>::get(),
+                cppu::UnoType<container::XNamed>::get(),
+            };
 
-            if( aTypeSequence.getLength() == 0 )
-            {
-                // Ready for multithreading; get global mutex for first call of this method only! see before
-                MutexGuard aGuard( osl::Mutex::getGlobalMutex() ) ;
-
-                // Control these pointer again ... it can be, that another instance will be faster then these!
-                if( aTypeSequence.getLength() == 0 )
-                {
-                    aTypeSequence.realloc( 12 );
-                    uno::Type* pTypes = aTypeSequence.getArray();
-
-                    *pTypes++ = cppu::UnoType<drawing::XShape>::get();
-                    *pTypes++ = cppu::UnoType<lang::XComponent>::get();
-                    *pTypes++ = cppu::UnoType<beans::XPropertySet>::get();
-                    *pTypes++ = cppu::UnoType<beans::XMultiPropertySet>::get();
-                    *pTypes++ = cppu::UnoType<beans::XPropertyState>::get();
-                    *pTypes++ = cppu::UnoType<beans::XMultiPropertyStates>::get();
-                    *pTypes++ = cppu::UnoType<drawing::XGluePointsSupplier>::get();
-                    *pTypes++ = cppu::UnoType<container::XChild>::get();
-                    *pTypes++ = cppu::UnoType<lang::XServiceInfo>::get();
-                    *pTypes++ = cppu::UnoType<lang::XTypeProvider>::get();
-                    *pTypes++ = cppu::UnoType<lang::XUnoTunnel>::get();
-                    *pTypes++ = cppu::UnoType<container::XNamed>::get();
-                }
-            }
             return aTypeSequence;
         }
     // group shape
     case OBJ_GRUP:
         {
-            static css::uno::Sequence< css::uno::Type > aTypeSequence;
+            static uno::Sequence<uno::Type> aTypeSequence{
+                cppu::UnoType<drawing::XShape>::get(),
+                cppu::UnoType<lang::XComponent>::get(),
+                cppu::UnoType<beans::XPropertySet>::get(),
+                cppu::UnoType<beans::XMultiPropertySet>::get(),
+                cppu::UnoType<beans::XPropertyState>::get(),
+                cppu::UnoType<beans::XMultiPropertyStates>::get(),
+                cppu::UnoType<drawing::XGluePointsSupplier>::get(),
+                cppu::UnoType<container::XChild>::get(),
+                cppu::UnoType<lang::XServiceInfo>::get(),
+                cppu::UnoType<lang::XTypeProvider>::get(),
+                cppu::UnoType<lang::XUnoTunnel>::get(),
+                cppu::UnoType<container::XNamed>::get(),
+                cppu::UnoType<drawing::XShapes>::get(),
+                cppu::UnoType<drawing::XShapeGroup>::get(),
+            };
 
-            if( aTypeSequence.getLength() == 0 )
-            {
-                // Ready for multithreading; get global mutex for first call of this method only! see before
-                MutexGuard aGuard( osl::Mutex::getGlobalMutex() ) ;
-
-                // Control these pointer again ... it can be, that another instance will be faster then these!
-                if( aTypeSequence.getLength() == 0 )
-                {
-                    aTypeSequence.realloc( 14 );
-                    uno::Type* pTypes = aTypeSequence.getArray();
-
-                    *pTypes++ = cppu::UnoType<drawing::XShape>::get();
-                    *pTypes++ = cppu::UnoType<lang::XComponent>::get();
-                    *pTypes++ = cppu::UnoType<beans::XPropertySet>::get();
-                    *pTypes++ = cppu::UnoType<beans::XMultiPropertySet>::get();
-                    *pTypes++ = cppu::UnoType<beans::XPropertyState>::get();
-                    *pTypes++ = cppu::UnoType<beans::XMultiPropertyStates>::get();
-                    *pTypes++ = cppu::UnoType<drawing::XGluePointsSupplier>::get();
-                    *pTypes++ = cppu::UnoType<container::XChild>::get();
-                    *pTypes++ = cppu::UnoType<lang::XServiceInfo>::get();
-                    *pTypes++ = cppu::UnoType<lang::XTypeProvider>::get();
-                    *pTypes++ = cppu::UnoType<lang::XUnoTunnel>::get();
-                    *pTypes++ = cppu::UnoType<container::XNamed>::get();
-                    *pTypes++ = cppu::UnoType<drawing::XShapes>::get();
-                    *pTypes++ = cppu::UnoType<drawing::XShapeGroup>::get();
-                }
-            }
             return aTypeSequence;
         }
     // connector shape
     case OBJ_EDGE:
         {
-            static css::uno::Sequence< css::uno::Type > aTypeSequence;
-
-            if( aTypeSequence.getLength() == 0 )
-            {
-                // Ready for multithreading; get global mutex for first call of this method only! see before
-                MutexGuard aGuard( osl::Mutex::getGlobalMutex() ) ;
+            static uno::Sequence<uno::Type> aTypeSequence{
+                cppu::UnoType<drawing::XShape>::get(),
+                cppu::UnoType<lang::XComponent>::get(),
+                cppu::UnoType<beans::XPropertySet>::get(),
+                cppu::UnoType<beans::XMultiPropertySet>::get(),
+                cppu::UnoType<beans::XPropertyState>::get(),
+                cppu::UnoType<beans::XMultiPropertyStates>::get(),
+                cppu::UnoType<drawing::XGluePointsSupplier>::get(),
+                cppu::UnoType<container::XChild>::get(),
+                cppu::UnoType<lang::XServiceInfo>::get(),
+                cppu::UnoType<lang::XTypeProvider>::get(),
+                cppu::UnoType<lang::XUnoTunnel>::get(),
+                cppu::UnoType<container::XNamed>::get(),
+                cppu::UnoType<drawing::XConnectorShape>::get(),
+                // from SvxUnoTextBase::getTypes()
+                cppu::UnoType<text::XTextAppend>::get(),
+                cppu::UnoType<text::XTextCopy>::get(),
+                cppu::UnoType<container::XEnumerationAccess>::get(),
+                cppu::UnoType<text::XTextRangeMover>::get(),
+            };
 
-                // Control these pointer again ... it can be, that another instance will be faster then these!
-                if( aTypeSequence.getLength() == 0 )
-                {
-                    aTypeSequence.realloc( 17 );
-                    uno::Type* pTypes = aTypeSequence.getArray();
-
-                    *pTypes++ = cppu::UnoType<drawing::XShape>::get();
-                    *pTypes++ = cppu::UnoType<lang::XComponent>::get();
-                    *pTypes++ = cppu::UnoType<beans::XPropertySet>::get();
-                    *pTypes++ = cppu::UnoType<beans::XMultiPropertySet>::get();
-                    *pTypes++ = cppu::UnoType<beans::XPropertyState>::get();
-                    *pTypes++ = cppu::UnoType<beans::XMultiPropertyStates>::get();
-                    *pTypes++ = cppu::UnoType<drawing::XGluePointsSupplier>::get();
-                    *pTypes++ = cppu::UnoType<container::XChild>::get();
-                    *pTypes++ = cppu::UnoType<lang::XServiceInfo>::get();
-                    *pTypes++ = cppu::UnoType<lang::XTypeProvider>::get();
-                    *pTypes++ = cppu::UnoType<lang::XUnoTunnel>::get();
-                    *pTypes++ = cppu::UnoType<container::XNamed>::get();
-                    *pTypes++ = cppu::UnoType<drawing::XConnectorShape>::get();
-                    // from SvxUnoTextBase::getTypes()
-                    *pTypes++ = cppu::UnoType<text::XTextAppend>::get();
-                    *pTypes++ = cppu::UnoType<text::XTextCopy>::get();
-                    *pTypes++ = cppu::UnoType<container::XEnumerationAccess>::get();
-                    *pTypes++ = cppu::UnoType<text::XTextRangeMover>::get();
-                }
-            }
             return aTypeSequence;
         }
     // control shape
     case OBJ_UNO:
         {
-            static css::uno::Sequence< css::uno::Type > aTypeSequence;
-
-            if( aTypeSequence.getLength() == 0 )
-            {
-                // Ready for multithreading; get global mutex for first call of this method only! see before
-                MutexGuard aGuard( osl::Mutex::getGlobalMutex() ) ;
+            static uno::Sequence<uno::Type> aTypeSequence{
+                cppu::UnoType<drawing::XShape>::get(),
+                cppu::UnoType<lang::XComponent>::get(),
+                cppu::UnoType<beans::XPropertySet>::get(),
+                cppu::UnoType<beans::XMultiPropertySet>::get(),
+                cppu::UnoType<beans::XPropertyState>::get(),
+                cppu::UnoType<beans::XMultiPropertyStates>::get(),
+                cppu::UnoType<drawing::XGluePointsSupplier>::get(),
+                cppu::UnoType<container::XChild>::get(),
+                cppu::UnoType<lang::XServiceInfo>::get(),
+                cppu::UnoType<lang::XTypeProvider>::get(),
+                cppu::UnoType<lang::XUnoTunnel>::get(),
+                cppu::UnoType<container::XNamed>::get(),
+                cppu::UnoType<drawing::XControlShape>::get(),
+            };
 
-                // Control these pointer again ... it can be, that another instance will be faster then these!
-                if( aTypeSequence.getLength() == 0 )
-                {
-                    aTypeSequence.realloc( 13 );
-                    uno::Type* pTypes = aTypeSequence.getArray();
-
-                    *pTypes++ = cppu::UnoType<drawing::XShape>::get();
-                    *pTypes++ = cppu::UnoType<lang::XComponent>::get();
-                    *pTypes++ = cppu::UnoType<beans::XPropertySet>::get();
-                    *pTypes++ = cppu::UnoType<beans::XMultiPropertySet>::get();
-                    *pTypes++ = cppu::UnoType<beans::XPropertyState>::get();
-                    *pTypes++ = cppu::UnoType<beans::XMultiPropertyStates>::get();
-                    *pTypes++ = cppu::UnoType<drawing::XGluePointsSupplier>::get();
-                    *pTypes++ = cppu::UnoType<container::XChild>::get();
-                    *pTypes++ = cppu::UnoType<lang::XServiceInfo>::get();
-                    *pTypes++ = cppu::UnoType<lang::XTypeProvider>::get();
-                    *pTypes++ = cppu::UnoType<lang::XUnoTunnel>::get();
-                    *pTypes++ = cppu::UnoType<container::XNamed>::get();
-                    *pTypes++ = cppu::UnoType<drawing::XControlShape>::get();
-                }
-            }
             return aTypeSequence;
         }
     // 3d scene shape
     case E3D_SCENE_ID|E3D_INVENTOR_FLAG:
         {
-            static css::uno::Sequence< css::uno::Type > aTypeSequence;
+            static uno::Sequence<uno::Type> aTypeSequence{
+                cppu::UnoType<drawing::XShape>::get(),
+                cppu::UnoType<lang::XComponent>::get(),
+                cppu::UnoType<beans::XPropertySet>::get(),
+                cppu::UnoType<beans::XMultiPropertySet>::get(),
+                cppu::UnoType<beans::XPropertyState>::get(),
+                cppu::UnoType<beans::XMultiPropertyStates>::get(),
+                cppu::UnoType<drawing::XGluePointsSupplier>::get(),
+                cppu::UnoType<container::XChild>::get(),
+                cppu::UnoType<lang::XServiceInfo>::get(),
+                cppu::UnoType<lang::XTypeProvider>::get(),
+                cppu::UnoType<lang::XUnoTunnel>::get(),
+                cppu::UnoType<container::XNamed>::get(),
+                cppu::UnoType<drawing::XShapes>::get(),
+            };
 
-            if( aTypeSequence.getLength() == 0 )
-            {
-                // Ready for multithreading; get global mutex for first call of this method only! see before
-                MutexGuard aGuard( osl::Mutex::getGlobalMutex() ) ;
-
-                // Control these pointer again ... it can be, that another instance will be faster then these!
-                if( aTypeSequence.getLength() == 0 )
-                {
-                    aTypeSequence.realloc( 13 );
-                    uno::Type* pTypes = aTypeSequence.getArray();
-
-                    *pTypes++ = cppu::UnoType<drawing::XShape>::get();
-                    *pTypes++ = cppu::UnoType<lang::XComponent>::get();
-                    *pTypes++ = cppu::UnoType<beans::XPropertySet>::get();
-                    *pTypes++ = cppu::UnoType<beans::XMultiPropertySet>::get();
-                    *pTypes++ = cppu::UnoType<beans::XPropertyState>::get();
-                    *pTypes++ = cppu::UnoType<beans::XMultiPropertyStates>::get();
-                    *pTypes++ = cppu::UnoType<drawing::XGluePointsSupplier>::get();
-                    *pTypes++ = cppu::UnoType<container::XChild>::get();
-                    *pTypes++ = cppu::UnoType<lang::XServiceInfo>::get();
-                    *pTypes++ = cppu::UnoType<lang::XTypeProvider>::get();
-                    *pTypes++ = cppu::UnoType<lang::XUnoTunnel>::get();
-                    *pTypes++ = cppu::UnoType<container::XNamed>::get();
-                    *pTypes++ = cppu::UnoType<drawing::XShapes>::get();
-                }
-            }
             return aTypeSequence;
         }
     case OBJ_CUSTOMSHAPE:
         {
-            static css::uno::Sequence< css::uno::Type > aTypeSequence;
-
-            if( aTypeSequence.getLength() == 0 )
-            {
-                // Ready for multithreading; get global mutex for first call of this method only! see before
-                MutexGuard aGuard( osl::Mutex::getGlobalMutex() ) ;
+            static uno::Sequence<uno::Type> aTypeSequence{
+                cppu::UnoType<drawing::XShape>::get(),
+                cppu::UnoType<lang::XComponent>::get(),
+                cppu::UnoType<beans::XPropertySet>::get(),
+                cppu::UnoType<beans::XMultiPropertySet>::get(),
+                cppu::UnoType<beans::XPropertyState>::get(),
+                cppu::UnoType<beans::XMultiPropertyStates>::get(),
+                cppu::UnoType<drawing::XGluePointsSupplier>::get(),
+                cppu::UnoType<container::XChild>::get(),
+                cppu::UnoType<lang::XServiceInfo>::get(),
+                cppu::UnoType<lang::XTypeProvider>::get(),
+                cppu::UnoType<lang::XUnoTunnel>::get(),
+                cppu::UnoType<container::XNamed>::get(),
+                // from SvxUnoTextBase::getTypes()
+                cppu::UnoType<text::XText>::get(),
+                cppu::UnoType<container::XEnumerationAccess>::get(),
+                cppu::UnoType<text::XTextRangeMover>::get(),
+                cppu::UnoType<drawing::XEnhancedCustomShapeDefaulter>::get(),
+            };
 
-                // Control these pointer again ... it can be, that another instance will be faster then these!
-                if( aTypeSequence.getLength() == 0 )
-                {
-                    aTypeSequence.realloc( 16 );
-                    uno::Type* pTypes = aTypeSequence.getArray();
-
-                    *pTypes++ = cppu::UnoType<drawing::XShape>::get();
-                    *pTypes++ = cppu::UnoType<lang::XComponent>::get();
-                    *pTypes++ = cppu::UnoType<beans::XPropertySet>::get();
-                    *pTypes++ = cppu::UnoType<beans::XMultiPropertySet>::get();
-                    *pTypes++ = cppu::UnoType<beans::XPropertyState>::get();
-                    *pTypes++ = cppu::UnoType<beans::XMultiPropertyStates>::get();
-                    *pTypes++ = cppu::UnoType<drawing::XGluePointsSupplier>::get();
-                    *pTypes++ = cppu::UnoType<container::XChild>::get();
-                    *pTypes++ = cppu::UnoType<lang::XServiceInfo>::get();
-                    *pTypes++ = cppu::UnoType<lang::XTypeProvider>::get();
-                    *pTypes++ = cppu::UnoType<lang::XUnoTunnel>::get();
-                    *pTypes++ = cppu::UnoType<container::XNamed>::get();
-                    // from SvxUnoTextBase::getTypes()
-                    *pTypes++ = cppu::UnoType<text::XText>::get();
-                    *pTypes++ = cppu::UnoType<container::XEnumerationAccess>::get();
-                    *pTypes++ = cppu::UnoType<text::XTextRangeMover>::get();
-                    *pTypes++ = cppu::UnoType<drawing::XEnhancedCustomShapeDefaulter>::get();
-                }
-            }
             return aTypeSequence;
         }
     // shapes with text
@@ -1009,38 +937,26 @@ uno::Sequence< uno::Type > SvxShape::_getTypes()
     case OBJ_OLE2: // #i118485# Moved to shapes with text
     default:
         {
-            static css::uno::Sequence< css::uno::Type > aTypeSequence;
-
-            if( aTypeSequence.getLength() == 0 )
-            {
-                // Ready for multithreading; get global mutex for first call of this method only! see before
-                MutexGuard aGuard( osl::Mutex::getGlobalMutex() ) ;
+            static uno::Sequence<uno::Type> aTypeSequence{
+                cppu::UnoType<drawing::XShape>::get(),
+                cppu::UnoType<lang::XComponent>::get(),
+                cppu::UnoType<beans::XPropertySet>::get(),
+                cppu::UnoType<beans::XMultiPropertySet>::get(),
+                cppu::UnoType<beans::XPropertyState>::get(),
+                cppu::UnoType<beans::XMultiPropertyStates>::get(),
+                cppu::UnoType<drawing::XGluePointsSupplier>::get(),
+                cppu::UnoType<container::XChild>::get(),
+                cppu::UnoType<lang::XServiceInfo>::get(),
+                cppu::UnoType<lang::XTypeProvider>::get(),
+                cppu::UnoType<lang::XUnoTunnel>::get(),
+                cppu::UnoType<container::XNamed>::get(),
+                // from SvxUnoTextBase::getTypes()
+                cppu::UnoType<text::XTextAppend>::get(),
+                cppu::UnoType<text::XTextCopy>::get(),
+                cppu::UnoType<container::XEnumerationAccess>::get(),
+                cppu::UnoType<text::XTextRangeMover>::get(),
+            };
 
-                // Control these pointer again ... it can be, that another instance will be faster then these!
-                if( aTypeSequence.getLength() == 0 )
-                {
-                    aTypeSequence.realloc( 16 );
-                    uno::Type* pTypes = aTypeSequence.getArray();
-
-                    *pTypes++ = cppu::UnoType<drawing::XShape>::get();
-                    *pTypes++ = cppu::UnoType<lang::XComponent>::get();
-                    *pTypes++ = cppu::UnoType<beans::XPropertySet>::get();
-                    *pTypes++ = cppu::UnoType<beans::XMultiPropertySet>::get();
-                    *pTypes++ = cppu::UnoType<beans::XPropertyState>::get();
-                    *pTypes++ = cppu::UnoType<beans::XMultiPropertyStates>::get();
-                    *pTypes++ = cppu::UnoType<drawing::XGluePointsSupplier>::get();
-                    *pTypes++ = cppu::UnoType<container::XChild>::get();
-                    *pTypes++ = cppu::UnoType<lang::XServiceInfo>::get();
-                    *pTypes++ = cppu::UnoType<lang::XTypeProvider>::get();
-                    *pTypes++ = cppu::UnoType<lang::XUnoTunnel>::get();
-                    *pTypes++ = cppu::UnoType<container::XNamed>::get();
-                    // from SvxUnoTextBase::getTypes()
-                    *pTypes++ = cppu::UnoType<text::XTextAppend>::get();
-                    *pTypes++ = cppu::UnoType<text::XTextCopy>::get();
-                    *pTypes++ = cppu::UnoType<container::XEnumerationAccess>::get();
-                    *pTypes++ = cppu::UnoType<text::XTextRangeMover>::get();
-                }
-            }
             return aTypeSequence;
         }
     }
diff --git a/toolkit/source/awt/vclxmenu.cxx b/toolkit/source/awt/vclxmenu.cxx
index 02006e87de31..8782c77bb34c 100644
--- a/toolkit/source/awt/vclxmenu.cxx
+++ b/toolkit/source/awt/vclxmenu.cxx
@@ -237,43 +237,21 @@ css::uno::Sequence< css::uno::Type > VCLXMenu::getTypes()
     const bool bIsPopupMenu = IsPopupMenu();
     aGuard.clear();
 
-    static ::cppu::OTypeCollection* pCollectionMenuBar = nullptr;
-    static ::cppu::OTypeCollection* pCollectionPopupMenu = nullptr;
-
     if ( bIsPopupMenu )
     {
-        if( !pCollectionPopupMenu )
-        {
-            ::osl::Guard< ::osl::Mutex > aGlobalGuard( ::osl::Mutex::getGlobalMutex() );
-            if( !pCollectionPopupMenu )
-            {
-                static ::cppu::OTypeCollection collectionPopupMenu(
-                cppu::UnoType<css::lang::XTypeProvider>::get(),
-                cppu::UnoType<css::awt::XMenu>::get(),
-                cppu::UnoType<css::awt::XPopupMenu>::get(),
-                cppu::UnoType<css::lang::XServiceInfo>::get());
-                pCollectionPopupMenu = &collectionPopupMenu;
-            }
-        }
-
-        return (*pCollectionPopupMenu).getTypes();
+        static cppu::OTypeCollection collectionPopupMenu(
+            cppu::UnoType<css::lang::XTypeProvider>::get(), cppu::UnoType<css::awt::XMenu>::get(),
+            cppu::UnoType<css::awt::XPopupMenu>::get(),
+            cppu::UnoType<css::lang::XServiceInfo>::get());
+        return collectionPopupMenu.getTypes();
     }
     else
     {
-        if( !pCollectionMenuBar )
-        {
-            ::osl::Guard< ::osl::Mutex > aGlobalGuard( ::osl::Mutex::getGlobalMutex() );
-            if( !pCollectionMenuBar )
-            {
-                static ::cppu::OTypeCollection collectionMenuBar(
-                cppu::UnoType<css::lang::XTypeProvider>::get(),
-                cppu::UnoType<css::awt::XMenu>::get(),
-                cppu::UnoType<css::awt::XMenuBar>::get(),
-                cppu::UnoType<css::lang::XServiceInfo>::get());
-                pCollectionMenuBar = &collectionMenuBar;
-            }
-        }
-        return (*pCollectionMenuBar).getTypes();
+        static cppu::OTypeCollection collectionMenuBar(
+            cppu::UnoType<css::lang::XTypeProvider>::get(), cppu::UnoType<css::awt::XMenu>::get(),
+            cppu::UnoType<css::awt::XMenuBar>::get(),
+            cppu::UnoType<css::lang::XServiceInfo>::get());
+        return collectionMenuBar.getTypes();
     }
 }
 
diff --git a/toolkit/source/awt/vclxtoolkit.cxx b/toolkit/source/awt/vclxtoolkit.cxx
index 6ecb5cebbded..71a2be7b0e4b 100644
--- a/toolkit/source/awt/vclxtoolkit.cxx
+++ b/toolkit/source/awt/vclxtoolkit.cxx
@@ -838,32 +838,14 @@ static bool                                 bInitedByVCLToolkit = false;
 
 osl::Mutex & getInitMutex()
 {
-    static osl::Mutex * pM;
-    if( !pM )
-    {
-        osl::Guard< osl::Mutex > aGuard( osl::Mutex::getGlobalMutex() );
-        if( !pM )
-        {
-            static osl::Mutex aMutex;
-            pM = &aMutex;
-        }
-    }
-    return *pM;
+    static osl::Mutex aMutex;
+    return aMutex;
 }
 
 osl::Condition & getInitCondition()
 {
-    static osl::Condition * pC = nullptr;
-    if( !pC )
-    {
-        osl::Guard< osl::Mutex > aGuard( osl::Mutex::getGlobalMutex() );
-        if( !pC )
-        {
-            static osl::Condition aCondition;
-            pC = &aCondition;
-        }
-    }
-    return *pC;
+    static osl::Condition aCondition;
+    return aCondition;
 }
 
 extern "C"
diff --git a/toolkit/source/helper/property.cxx b/toolkit/source/helper/property.cxx
index f29ca532293a..e6ce48ab826a 100644
--- a/toolkit/source/helper/property.cxx
+++ b/toolkit/source/helper/property.cxx
@@ -90,205 +90,193 @@ struct ImplPropertyInfo
 
 static ImplPropertyInfo* ImplGetPropertyInfos( sal_uInt16& rElementCount )
 {
-    static ImplPropertyInfo* pPropertyInfos = nullptr;
-    static sal_uInt16 nElements = 0;
-    if( !pPropertyInfos )
-    {
-        ::osl::Guard< ::osl::Mutex > aGuard( ::osl::Mutex::getGlobalMutex() );
-        if( !pPropertyInfos )
-        {
-            static ImplPropertyInfo aImplPropertyInfos [] =
-            {
-            DECL_PROP_2     ( "AccessibleName",         ACCESSIBLENAME,     OUString,    BOUND, MAYBEDEFAULT ),
-            DECL_PROP_3     ( "Align",                  ALIGN,              sal_Int16,          BOUND, MAYBEDEFAULT, MAYBEVOID ),
-            DECL_PROP_2     ( "Autocomplete",           AUTOCOMPLETE,       bool,               BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "AutoHScroll",            AUTOHSCROLL,        bool,               BOUND, MAYBEDEFAULT ),
-            DECL_PROP_1     ( "AutoMnemonics",          AUTOMNEMONICS,      bool,               BOUND ),
-            DECL_PROP_2     ( "AutoToggle",             AUTOTOGGLE,         bool,               BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "AutoVScroll",            AUTOVSCROLL,        bool,               BOUND, MAYBEDEFAULT ),
-            DECL_PROP_3     ( "BackgroundColor",        BACKGROUNDCOLOR,    sal_Int32,          BOUND, MAYBEDEFAULT, MAYBEVOID ),
-            DECL_DEP_PROP_2 ( "BlockIncrement",         BLOCKINCREMENT,     sal_Int32,          BOUND, MAYBEDEFAULT ),
-            DECL_PROP_3     ( "Border",                 BORDER,             sal_Int16,          BOUND, MAYBEDEFAULT, MAYBEVOID ),
-            DECL_DEP_PROP_3 ( "BorderColor",            BORDERCOLOR,        sal_Int32,          BOUND, MAYBEDEFAULT, MAYBEVOID ),
-            DECL_PROP_2     ( "Closeable",              CLOSEABLE,          bool,               BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "CurrencySymbol",         CURRENCYSYMBOL,     OUString,    BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "CustomUnitText",         CUSTOMUNITTEXT,     OUString,    BOUND, MAYBEDEFAULT ),
-            DECL_DEP_PROP_3 ( "Date",                   DATE,               util::Date,          BOUND, MAYBEDEFAULT, MAYBEVOID ),
-            DECL_PROP_2     ( "DateFormat",             EXTDATEFORMAT,      sal_Int16,          BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "DateMax",                DATEMAX,            util::Date,          BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "DateMin",                DATEMIN,            util::Date,          BOUND, MAYBEDEFAULT ),
-            DECL_PROP_3     ( "DateShowCentury",        DATESHOWCENTURY,    bool,               BOUND, MAYBEDEFAULT, MAYBEVOID ),
-            DECL_PROP_2     ( "DecimalAccuracy",        DECIMALACCURACY,    sal_Int16,          BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "DefaultButton",          DEFAULTBUTTON,      bool,               BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "DefaultControl",         DEFAULTCONTROL,     OUString,    BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "DesktopAsParent",        DESKTOP_AS_PARENT,  bool,               BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "DisplayBackgroundColor", DISPLAYBACKGROUNDCOLOR, sal_Int32, BOUND, MAYBEVOID ),
-            DECL_PROP_2     ( "Dropdown",               DROPDOWN,           bool,               BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "EchoChar",               ECHOCHAR,           sal_Int16,          BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "EditMask",               EDITMASK,           OUString,    BOUND, MAYBEDEFAULT ),
-            DECL_PROP_3     ( "EffectiveDefault",       EFFECTIVE_DEFAULT, Any,                BOUND, MAYBEDEFAULT, MAYBEVOID ),
-            DECL_PROP_3     ( "EffectiveMax",           EFFECTIVE_MAX,      double,             BOUND, MAYBEDEFAULT, MAYBEVOID ),
-            DECL_PROP_3     ( "EffectiveMin",           EFFECTIVE_MIN,      double,             BOUND, MAYBEDEFAULT, MAYBEVOID ),
-            DECL_DEP_PROP_3 ( "EffectiveValue",         EFFECTIVE_VALUE,    Any,                BOUND, MAYBEDEFAULT, MAYBEVOID ),
-            DECL_PROP_2     ( "Enabled",                ENABLED,            bool,               BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "EnforceFormat",          ENFORCE_FORMAT,     bool,               BOUND, MAYBEDEFAULT ),
-            DECL_PROP_3     ( "FillColor",              FILLCOLOR,          sal_Int32,          BOUND, MAYBEDEFAULT, MAYBEVOID ),
-            DECL_PROP_2     ( "FocusOnClick",           FOCUSONCLICK,       bool,               BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "FontRelief",             FONTRELIEF,         sal_Int16,          BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "FontEmphasisMark",       FONTEMPHASISMARK,   sal_Int16,          BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "FontDescriptor",         FONTDESCRIPTOR,     FontDescriptor,     BOUND, MAYBEDEFAULT ),
-
-            // parts of css::awt::FontDescriptor
-            DECL_PROP_2     ( "FontName",               FONTDESCRIPTORPART_NAME,         OUString,BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "FontStyleName",          FONTDESCRIPTORPART_STYLENAME,    OUString,BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "FontFamily",             FONTDESCRIPTORPART_FAMILY,       sal_Int16,      BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "FontCharset",            FONTDESCRIPTORPART_CHARSET,      sal_Int16,      BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "FontHeight",             FONTDESCRIPTORPART_HEIGHT,       float,          BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "FontWidth",              FONTDESCRIPTORPART_WIDTH,        sal_Int16,      BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "FontPitch",              FONTDESCRIPTORPART_PITCH,        sal_Int16,      BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "FontWeight",             FONTDESCRIPTORPART_WEIGHT,       float,          BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "FontCharWidth",          FONTDESCRIPTORPART_CHARWIDTH,    float,          BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "FontOrientation",        FONTDESCRIPTORPART_ORIENTATION,  float,          BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "FontSlant",              FONTDESCRIPTORPART_SLANT,        sal_Int16,      BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "FontUnderline",          FONTDESCRIPTORPART_UNDERLINE,    sal_Int16,      BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "FontStrikeout",          FONTDESCRIPTORPART_STRIKEOUT,    sal_Int16,      BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "FontKerning",            FONTDESCRIPTORPART_KERNING,      bool,           BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "FontWordLineMode",       FONTDESCRIPTORPART_WORDLINEMODE, bool,           BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "FontType",               FONTDESCRIPTORPART_TYPE,         sal_Int16,      BOUND, MAYBEDEFAULT ),
-
-            DECL_PROP_3     ( "FormatKey",              FORMATKEY,          sal_Int32,      BOUND, MAYBEVOID, TRANSIENT ),
-            DECL_PROP_3     ( "FormatsSupplier",        FORMATSSUPPLIER,    Reference< css::util::XNumberFormatsSupplier >, BOUND, MAYBEVOID, TRANSIENT ),
-
-            DECL_PROP_2     ( "Graphic",                GRAPHIC,            Reference< XGraphic >, BOUND, TRANSIENT ),
-            DECL_PROP_2     ( "GroupName",              GROUPNAME,          OUString,    BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "HelpText",               HELPTEXT,           OUString,    BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "HelpURL",                HELPURL,            OUString,    BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "HideInactiveSelection",  HIDEINACTIVESELECTION, bool,            BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "HighContrastMode",       HIGHCONTRASTMODE,   bool,               BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "HScroll",                HSCROLL,            bool,               BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "HardLineBreaks",         HARDLINEBREAKS,     bool,               BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "ImageAlign",             IMAGEALIGN,         sal_Int16,          BOUND, MAYBEDEFAULT),
-            DECL_PROP_2     ( "ImagePosition",          IMAGEPOSITION,      sal_Int16,          BOUND, MAYBEDEFAULT),
-            DECL_PROP_2     ( "ImageURL",               IMAGEURL,           OUString,    BOUND, MAYBEDEFAULT ),
-            DECL_PROP_3     ( "ItemSeparatorPos",       ITEM_SEPARATOR_POS, sal_Int16,          BOUND, MAYBEDEFAULT, MAYBEVOID ),
-            DECL_PROP_2     ( "Label",                  LABEL,              OUString,    BOUND, MAYBEDEFAULT ),
-            DECL_PROP_3     ( "LineColor",              LINECOLOR,          sal_Int32,          BOUND, MAYBEDEFAULT, MAYBEVOID ),
-            DECL_PROP_2     ( "LineCount",              LINECOUNT,          sal_Int16,          BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "LineEndFormat",          LINE_END_FORMAT,    sal_Int16,          BOUND, MAYBEDEFAULT ),
-            DECL_DEP_PROP_2 ( "LineIncrement",          LINEINCREMENT,      sal_Int32,          BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "LiteralMask",            LITERALMASK,        OUString,    BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "LiveScroll",             LIVE_SCROLL,        bool,               BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "MaxTextLen",             MAXTEXTLEN,         sal_Int16,          BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "Moveable",               MOVEABLE,           bool,               BOUND, MAYBEDEFAULT ),
-            DECL_PROP_1     ( "MouseTransparent",       MOUSETRANSPARENT,   bool,               BOUND ),
-            DECL_PROP_2     ( "MultiLine",              MULTILINE,          bool,               BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "MultiSelection",         MULTISELECTION,     bool,               BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "MultiSelectionSimpleMode",   MULTISELECTION_SIMPLEMODE,    bool, BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "NativeWidgetLook",       NATIVE_WIDGET_LOOK, bool,               BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "NoLabel",                NOLABEL,            bool,               BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "Orientation",            ORIENTATION,        sal_Int32,          BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "PaintTransparent",       PAINTTRANSPARENT,   bool,               BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "PluginParent",           PLUGINPARENT,       sal_Int64,          BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "PrependCurrencySymbol",  CURSYM_POSITION,    bool,               BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "Printable",              PRINTABLE,          bool,               BOUND, MAYBEDEFAULT ),
-            DECL_DEP_PROP_3 ( "ProgressValue",          PROGRESSVALUE,      sal_Int32,          BOUND, MAYBEDEFAULT, MAYBEVOID ),
-            DECL_PROP_2     ( "ProgressValueMax",       PROGRESSVALUE_MAX,  sal_Int32,          BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "ProgressValueMin",       PROGRESSVALUE_MIN,  sal_Int32,          BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "PushButtonType",         PUSHBUTTONTYPE,     sal_Int16,          BOUND, MAYBEDEFAULT),
-            DECL_PROP_2     ( "ReadOnly",               READONLY,           bool,               BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "Repeat",                 REPEAT,             bool,               BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "AutoRepeat",             AUTO_REPEAT,        sal_Bool,           BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "RepeatDelay",            REPEAT_DELAY,       sal_Int32,          BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "ScaleImage",             SCALEIMAGE,         bool,               BOUND, MAYBEDEFAULT ),
-            DECL_DEP_PROP_2 ( "ScaleMode",              IMAGE_SCALE_MODE,   sal_Int16,          BOUND, MAYBEDEFAULT ),
-            DECL_DEP_PROP_3 ( "ScrollValue",            SCROLLVALUE,        sal_Int32,          BOUND, MAYBEDEFAULT, MAYBEVOID ),
-            DECL_PROP_2     ( "ScrollValueMax",         SCROLLVALUE_MAX,    sal_Int32,          BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "ScrollValueMin",         SCROLLVALUE_MIN,    sal_Int32,          BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "ScrollWidth",            SCROLLWIDTH,        sal_Int32,          BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "ScrollHeight",           SCROLLHEIGHT,       sal_Int32,          BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "ScrollTop",              SCROLLTOP,          sal_Int32,          BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "ScrollLeft",             SCROLLLEFT,         sal_Int32,          BOUND, MAYBEDEFAULT ),
-            DECL_DEP_PROP_2 ( "SelectedItems",          SELECTEDITEMS,      Sequence<sal_Int16>, BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "ShowThousandsSeparator", NUMSHOWTHOUSANDSEP,     bool,           BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "Sizeable",               SIZEABLE,               bool,           BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "Spin",                   SPIN,                   bool,           BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "SpinIncrement",          SPININCREMENT,          sal_Int32,      BOUND, MAYBEDEFAULT ),
-            DECL_DEP_PROP_2 ( "SpinValue",              SPINVALUE,              sal_Int32,      BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "SpinValueMax",           SPINVALUE_MAX,          sal_Int32,      BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "SpinValueMin",           SPINVALUE_MIN,          sal_Int32,      BOUND, MAYBEDEFAULT ),
-            DECL_DEP_PROP_2 ( "State",                  STATE,                  sal_Int16,      BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "StrictFormat",           STRICTFORMAT,           bool,           BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "StringItemList",         STRINGITEMLIST,         Sequence< OUString >, BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "TypedItemList",          TYPEDITEMLIST,          Sequence< Any >, BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "VisualEffect",           VISUALEFFECT,           sal_Int16,      BOUND, MAYBEDEFAULT ),
-            DECL_PROP_3     ( "SymbolColor",            SYMBOL_COLOR,           sal_Int32,      BOUND, MAYBEDEFAULT, MAYBEVOID ),
-            DECL_PROP_3     ( "Tabstop",                TABSTOP,                bool,           BOUND, MAYBEDEFAULT, MAYBEVOID ),
-            DECL_PROP_2     ( "Text",                   TEXT,                   OUString, BOUND, MAYBEDEFAULT ),
-            DECL_PROP_3     ( "TextColor",              TEXTCOLOR,              sal_Int32,      BOUND, MAYBEDEFAULT, MAYBEVOID ),
-            DECL_PROP_3     ( "TextLineColor",          TEXTLINECOLOR,          sal_Int32,      BOUND, MAYBEDEFAULT, MAYBEVOID ),
-            DECL_DEP_PROP_3 ( "Time",                   TIME,                   util::Time,      BOUND, MAYBEDEFAULT, MAYBEVOID ),
-            DECL_PROP_2     ( "TimeFormat",             EXTTIMEFORMAT,          sal_Int16,      BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "TimeMax",                TIMEMAX,                util::Time,      BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "TimeMin",                TIMEMIN,                util::Time,      BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "Title",                  TITLE,                  OUString, BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "Toggle",                 TOGGLE,                 bool,           BOUND, MAYBEDEFAULT ),
-            DECL_PROP_3     ( "TreatAsNumber",          TREATASNUMBER,          bool,           BOUND, MAYBEDEFAULT,TRANSIENT ),
-            DECL_PROP_2     ( "TriState",               TRISTATE,               bool,           BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "Unit",                   UNIT,                   sal_Int16,      BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "VScroll",                VSCROLL,                bool,           BOUND, MAYBEDEFAULT ),
-            DECL_DEP_PROP_3 ( "Value",                  VALUE_DOUBLE,           double,         BOUND, MAYBEDEFAULT, MAYBEVOID ),
-            DECL_PROP_2     ( "ValueMax",               VALUEMAX_DOUBLE,        double,         BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "ValueMin",               VALUEMIN_DOUBLE,        double,         BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "ValueStep",              VALUESTEP_DOUBLE,       double,         BOUND, MAYBEDEFAULT ),
-            DECL_PROP_3     ( "VerticalAlign",          VERTICALALIGN,          VerticalAlignment, BOUND, MAYBEDEFAULT, MAYBEVOID ),
-            DECL_DEP_PROP_3 ( "VisibleSize",            VISIBLESIZE,            sal_Int32,      BOUND, MAYBEDEFAULT, MAYBEVOID ),
-            DECL_PROP_2     ( "Activated",              ACTIVATED,              sal_Bool,       BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "Complete",               COMPLETE,               sal_Bool,       BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "CurrentItemID",          CURRENTITEMID,          sal_Int16,      BOUND, MAYBEDEFAULT ),
-
-            DECL_PROP_2     ( "MouseWheelBehavior",     MOUSE_WHEEL_BEHAVIOUR,  sal_Int16,      BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "StepTime",               STEP_TIME,              sal_Int32,      BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "Decoration",             DECORATION,             sal_Bool,       BOUND, MAYBEDEFAULT ),
-
-            DECL_PROP_2     ( "SelectionType",          TREE_SELECTIONTYPE,     css::view::SelectionType,      BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "Editable",               TREE_EDITABLE,          sal_Bool,       BOUND, MAYBEDEFAULT ),
-            DECL_PROP_3     ( "DataModel",              TREE_DATAMODEL,         Reference< css::awt::tree::XTreeDataModel >,       BOUND, MAYBEDEFAULT, MAYBEVOID ),
-            DECL_PROP_2     ( "RootDisplayed",          TREE_ROOTDISPLAYED,     sal_Bool,           BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "ShowsHandles",           TREE_SHOWSHANDLES,      sal_Bool,           BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "ShowsRootHandles",       TREE_SHOWSROOTHANDLES,  sal_Bool,           BOUND, MAYBEDEFAULT ),
-            DECL_PROP_3     ( "RowHeight",              ROW_HEIGHT,             sal_Int32,          BOUND, MAYBEDEFAULT, MAYBEVOID ),
-            DECL_PROP_2     ( "InvokesStopNodeEditing", TREE_INVOKESSTOPNODEEDITING, sal_Bool,      BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "DialogSourceURL",        DIALOGSOURCEURL,        OUString,    BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "URL",                    URL,                    OUString,    BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "WritingMode",            WRITING_MODE,           sal_Int16,          BOUND, MAYBEDEFAULT ),
-            DECL_PROP_3     ( "ContextWritingMode",     CONTEXT_WRITING_MODE,   sal_Int16,          BOUND, MAYBEDEFAULT, TRANSIENT ),
-            DECL_PROP_2     ( "ShowRowHeader",          GRID_SHOWROWHEADER,     sal_Bool,           BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "RowHeaderWidth",         ROW_HEADER_WIDTH,       sal_Int32,          BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "ShowColumnHeader",       GRID_SHOWCOLUMNHEADER,  sal_Bool,           BOUND, MAYBEDEFAULT ),
-            DECL_PROP_3     ( "ColumnHeaderHeight",     COLUMN_HEADER_HEIGHT,   sal_Int32,          BOUND, MAYBEDEFAULT, MAYBEVOID ),
-            DECL_PROP_1     ( "GridDataModel",          GRID_DATAMODEL,         Reference< css::awt::grid::XGridDataModel >,          BOUND ),
-            DECL_PROP_1     ( "ColumnModel",            GRID_COLUMNMODEL,       Reference< css::awt::grid::XGridColumnModel >,          BOUND ),
-            DECL_PROP_3     ( "SelectionModel",         GRID_SELECTIONMODE,     css::view::SelectionType,          BOUND, MAYBEDEFAULT, MAYBEVOID ),
-            DECL_PROP_2     ( "EnableVisible",          ENABLEVISIBLE,          sal_Bool,           BOUND, MAYBEDEFAULT ),
-            DECL_PROP_3     ( "ReferenceDevice",        REFERENCE_DEVICE,       Reference< XDevice >,BOUND, MAYBEDEFAULT, TRANSIENT ),
-            DECL_PROP_3     ( "HeaderBackgroundColor",  GRID_HEADER_BACKGROUND,     sal_Int32,              BOUND, MAYBEDEFAULT, MAYBEVOID ),
-            DECL_PROP_3     ( "HeaderTextColor",        GRID_HEADER_TEXT_COLOR,     sal_Int32,              BOUND, MAYBEDEFAULT, MAYBEVOID ),
-            DECL_PROP_3     ( "GridLineColor",          GRID_LINE_COLOR,            sal_Int32,              BOUND, MAYBEDEFAULT, MAYBEVOID ),
-            DECL_PROP_3     ( "RowBackgroundColors",    GRID_ROW_BACKGROUND_COLORS, Sequence< sal_Int32 >,  BOUND, MAYBEDEFAULT, MAYBEVOID ),
-            DECL_PROP_2     ( "UseGridLines",           USE_GRID_LINES,             sal_Bool,               BOUND, MAYBEDEFAULT ),
-            DECL_DEP_PROP_3 ( "MultiPageValue",          MULTIPAGEVALUE,      sal_Int32,          BOUND, MAYBEDEFAULT, MAYBEVOID ),
-            DECL_PROP_3     ( "AllDialogChildren",                USERFORMCONTAINEES,                Reference< css::container::XNameContainer >,           BOUND, MAYBEDEFAULT, MAYBEVOID ),
-            DECL_PROP_3     ( "ActiveSelectionBackgroundColor",     ACTIVE_SEL_BACKGROUND_COLOR,    sal_Int32,  BOUND, MAYBEDEFAULT, MAYBEVOID ),
-            DECL_PROP_3     ( "InactiveSelectionBackgroundColor",   INACTIVE_SEL_BACKGROUND_COLOR,  sal_Int32,  BOUND, MAYBEDEFAULT, MAYBEVOID ),
-            DECL_PROP_3     ( "ActiveSelectionTextColor",           ACTIVE_SEL_TEXT_COLOR,          sal_Int32,  BOUND, MAYBEDEFAULT, MAYBEVOID ),
-            DECL_PROP_3     ( "InactiveSelectionTextColor",         INACTIVE_SEL_TEXT_COLOR,        sal_Int32,  BOUND, MAYBEDEFAULT, MAYBEVOID ),
+    static ImplPropertyInfo aImplPropertyInfos [] = {
+        DECL_PROP_2     ( "AccessibleName",         ACCESSIBLENAME,         OUString,       BOUND, MAYBEDEFAULT ),
+        DECL_PROP_3     ( "Align",                  ALIGN,                  sal_Int16,      BOUND, MAYBEDEFAULT, MAYBEVOID ),
+        DECL_PROP_2     ( "Autocomplete",           AUTOCOMPLETE,           bool,           BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "AutoHScroll",            AUTOHSCROLL,            bool,           BOUND, MAYBEDEFAULT ),
+        DECL_PROP_1     ( "AutoMnemonics",          AUTOMNEMONICS,          bool,           BOUND ),
+        DECL_PROP_2     ( "AutoToggle",             AUTOTOGGLE,             bool,           BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "AutoVScroll",            AUTOVSCROLL,            bool,           BOUND, MAYBEDEFAULT ),
+        DECL_PROP_3     ( "BackgroundColor",        BACKGROUNDCOLOR,        sal_Int32,      BOUND, MAYBEDEFAULT, MAYBEVOID ),
+        DECL_DEP_PROP_2 ( "BlockIncrement",         BLOCKINCREMENT,         sal_Int32,      BOUND, MAYBEDEFAULT ),
+        DECL_PROP_3     ( "Border",                 BORDER,                 sal_Int16,      BOUND, MAYBEDEFAULT, MAYBEVOID ),
+        DECL_DEP_PROP_3 ( "BorderColor",            BORDERCOLOR,            sal_Int32,      BOUND, MAYBEDEFAULT, MAYBEVOID ),
+        DECL_PROP_2     ( "Closeable",              CLOSEABLE,              bool,           BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "CurrencySymbol",         CURRENCYSYMBOL,         OUString,       BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "CustomUnitText",         CUSTOMUNITTEXT,         OUString,       BOUND, MAYBEDEFAULT ),
+        DECL_DEP_PROP_3 ( "Date",                   DATE,                   util::Date,     BOUND, MAYBEDEFAULT, MAYBEVOID ),
+        DECL_PROP_2     ( "DateFormat",             EXTDATEFORMAT,          sal_Int16,      BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "DateMax",                DATEMAX,                util::Date,     BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "DateMin",                DATEMIN,                util::Date,     BOUND, MAYBEDEFAULT ),
+        DECL_PROP_3     ( "DateShowCentury",        DATESHOWCENTURY,        bool,           BOUND, MAYBEDEFAULT, MAYBEVOID ),
+        DECL_PROP_2     ( "DecimalAccuracy",        DECIMALACCURACY,        sal_Int16,      BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "DefaultButton",          DEFAULTBUTTON,          bool,           BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "DefaultControl",         DEFAULTCONTROL,         OUString,       BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "DesktopAsParent",        DESKTOP_AS_PARENT,      bool,           BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "DisplayBackgroundColor", DISPLAYBACKGROUNDCOLOR, sal_Int32,      BOUND, MAYBEVOID ),
+        DECL_PROP_2     ( "Dropdown",               DROPDOWN,               bool,           BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "EchoChar",               ECHOCHAR,               sal_Int16,      BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "EditMask",               EDITMASK,               OUString,       BOUND, MAYBEDEFAULT ),
+        DECL_PROP_3     ( "EffectiveDefault",       EFFECTIVE_DEFAULT,      Any,            BOUND, MAYBEDEFAULT, MAYBEVOID ),
+        DECL_PROP_3     ( "EffectiveMax",           EFFECTIVE_MAX,          double,         BOUND, MAYBEDEFAULT, MAYBEVOID ),
+        DECL_PROP_3     ( "EffectiveMin",           EFFECTIVE_MIN,          double,         BOUND, MAYBEDEFAULT, MAYBEVOID ),
+        DECL_DEP_PROP_3 ( "EffectiveValue",         EFFECTIVE_VALUE,        Any,            BOUND, MAYBEDEFAULT, MAYBEVOID ),
+        DECL_PROP_2     ( "Enabled",                ENABLED,                bool,           BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "EnforceFormat",          ENFORCE_FORMAT,         bool,           BOUND, MAYBEDEFAULT ),
+        DECL_PROP_3     ( "FillColor",              FILLCOLOR,              sal_Int32,      BOUND, MAYBEDEFAULT, MAYBEVOID ),
+        DECL_PROP_2     ( "FocusOnClick",           FOCUSONCLICK,           bool,           BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "FontRelief",             FONTRELIEF,             sal_Int16,      BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "FontEmphasisMark",       FONTEMPHASISMARK,       sal_Int16,      BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "FontDescriptor",         FONTDESCRIPTOR,         FontDescriptor, BOUND, MAYBEDEFAULT ),
+
+        // parts of css::awt::FontDescriptor
+        DECL_PROP_2     ( "FontName",               FONTDESCRIPTORPART_NAME,         OUString,  BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "FontStyleName",          FONTDESCRIPTORPART_STYLENAME,    OUString,  BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "FontFamily",             FONTDESCRIPTORPART_FAMILY,       sal_Int16, BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "FontCharset",            FONTDESCRIPTORPART_CHARSET,      sal_Int16, BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "FontHeight",             FONTDESCRIPTORPART_HEIGHT,       float,     BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "FontWidth",              FONTDESCRIPTORPART_WIDTH,        sal_Int16, BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "FontPitch",              FONTDESCRIPTORPART_PITCH,        sal_Int16, BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "FontWeight",             FONTDESCRIPTORPART_WEIGHT,       float,     BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "FontCharWidth",          FONTDESCRIPTORPART_CHARWIDTH,    float,     BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "FontOrientation",        FONTDESCRIPTORPART_ORIENTATION,  float,     BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "FontSlant",              FONTDESCRIPTORPART_SLANT,        sal_Int16, BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "FontUnderline",          FONTDESCRIPTORPART_UNDERLINE,    sal_Int16, BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "FontStrikeout",          FONTDESCRIPTORPART_STRIKEOUT,    sal_Int16, BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "FontKerning",            FONTDESCRIPTORPART_KERNING,      bool,      BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "FontWordLineMode",       FONTDESCRIPTORPART_WORDLINEMODE, bool,      BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "FontType",               FONTDESCRIPTORPART_TYPE,         sal_Int16, BOUND, MAYBEDEFAULT ),
+
+        DECL_PROP_3     ( "FormatKey",              FORMATKEY,          sal_Int32,      BOUND, MAYBEVOID, TRANSIENT ),
+        DECL_PROP_3     ( "FormatsSupplier",        FORMATSSUPPLIER,    Reference< css::util::XNumberFormatsSupplier >, BOUND, MAYBEVOID, TRANSIENT ),
+
+        DECL_PROP_2     ( "Graphic",                GRAPHIC,            Reference< XGraphic >, BOUND, TRANSIENT ),
+        DECL_PROP_2     ( "GroupName",              GROUPNAME,          OUString,           BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "HelpText",               HELPTEXT,           OUString,           BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "HelpURL",                HELPURL,            OUString,           BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "HideInactiveSelection",  HIDEINACTIVESELECTION, bool,            BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "HighContrastMode",       HIGHCONTRASTMODE,   bool,               BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "HScroll",                HSCROLL,            bool,               BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "HardLineBreaks",         HARDLINEBREAKS,     bool,               BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "ImageAlign",             IMAGEALIGN,         sal_Int16,          BOUND, MAYBEDEFAULT),
+        DECL_PROP_2     ( "ImagePosition",          IMAGEPOSITION,      sal_Int16,          BOUND, MAYBEDEFAULT),
+        DECL_PROP_2     ( "ImageURL",               IMAGEURL,           OUString,           BOUND, MAYBEDEFAULT ),
+        DECL_PROP_3     ( "ItemSeparatorPos",       ITEM_SEPARATOR_POS, sal_Int16,          BOUND, MAYBEDEFAULT, MAYBEVOID ),
+        DECL_PROP_2     ( "Label",                  LABEL,              OUString,           BOUND, MAYBEDEFAULT ),
+        DECL_PROP_3     ( "LineColor",              LINECOLOR,          sal_Int32,          BOUND, MAYBEDEFAULT, MAYBEVOID ),
+        DECL_PROP_2     ( "LineCount",              LINECOUNT,          sal_Int16,          BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "LineEndFormat",          LINE_END_FORMAT,    sal_Int16,          BOUND, MAYBEDEFAULT ),
+        DECL_DEP_PROP_2 ( "LineIncrement",          LINEINCREMENT,      sal_Int32,          BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "LiteralMask",            LITERALMASK,        OUString,           BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "LiveScroll",             LIVE_SCROLL,        bool,               BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "MaxTextLen",             MAXTEXTLEN,         sal_Int16,          BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "Moveable",               MOVEABLE,           bool,               BOUND, MAYBEDEFAULT ),
+        DECL_PROP_1     ( "MouseTransparent",       MOUSETRANSPARENT,   bool,               BOUND ),
+        DECL_PROP_2     ( "MultiLine",              MULTILINE,          bool,               BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "MultiSelection",         MULTISELECTION,     bool,               BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "MultiSelectionSimpleMode",   MULTISELECTION_SIMPLEMODE,    bool, BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "NativeWidgetLook",       NATIVE_WIDGET_LOOK, bool,               BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "NoLabel",                NOLABEL,            bool,               BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "Orientation",            ORIENTATION,        sal_Int32,          BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "PaintTransparent",       PAINTTRANSPARENT,   bool,               BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "PluginParent",           PLUGINPARENT,       sal_Int64,          BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "PrependCurrencySymbol",  CURSYM_POSITION,    bool,               BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "Printable",              PRINTABLE,          bool,               BOUND, MAYBEDEFAULT ),
+        DECL_DEP_PROP_3 ( "ProgressValue",          PROGRESSVALUE,      sal_Int32,          BOUND, MAYBEDEFAULT, MAYBEVOID ),
+        DECL_PROP_2     ( "ProgressValueMax",       PROGRESSVALUE_MAX,  sal_Int32,          BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "ProgressValueMin",       PROGRESSVALUE_MIN,  sal_Int32,          BOUND, MAYBEDEFAULT ),
+        DECL_PROP_2     ( "PushButtonType",         PUSHBUTTONTYPE,     sal_Int16,          BOUND, MAYBEDEFAULT),
+        DECL_PROP_2     ( "ReadOnly",               READONLY,           bool,               BOUND, MAYBEDEFAULT ),

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list