[Libreoffice-commits] core.git: toolkit/source

Jochen Nitschke j.nitschke+logerrit at ok.de
Mon Apr 16 06:25:56 UTC 2018


 toolkit/source/awt/vclxprinter.cxx |   41 ++++++-------------------------------
 1 file changed, 7 insertions(+), 34 deletions(-)

New commits:
commit 3a4d2468a62363dd228b1e2fad683baf81817674
Author: Jochen Nitschke <j.nitschke+logerrit at ok.de>
Date:   Sun Apr 15 21:49:35 2018 +0200

    toolkit: use thread safe static initializer
    
    instead of two double-checked locking patterns
    
    Change-Id: Ic232ff44abcba6beda3edf385c2fc6029c04d936
    Reviewed-on: https://gerrit.libreoffice.org/52922
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/toolkit/source/awt/vclxprinter.cxx b/toolkit/source/awt/vclxprinter.cxx
index 7afe226f98de..9f982059e362 100644
--- a/toolkit/source/awt/vclxprinter.cxx
+++ b/toolkit/source/awt/vclxprinter.cxx
@@ -41,28 +41,6 @@
 #define PROPERTY_Orientation    0
 #define PROPERTY_Horizontal     1
 
-css::beans::Property* ImplGetProperties( sal_uInt16& rElementCount )
-{
-    static css::beans::Property* pProperties = nullptr;
-    static sal_uInt16 nElements = 0;
-    if( !pProperties )
-    {
-        ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
-        if( !pProperties )
-        {
-            static css::beans::Property aPropTable[] =
-            {
-                css::beans::Property( "Orientation", PROPERTY_Orientation, cppu::UnoType<sal_Int16>::get(), 0 ),
-                css::beans::Property( "Horizontal", PROPERTY_Horizontal, cppu::UnoType<bool>::get(), 0 )
-            };
-            pProperties = aPropTable;
-            nElements = SAL_N_ELEMENTS( aPropTable );
-        }
-    }
-    rElementCount = nElements;
-    return pProperties;
-}
-
 //    ----------------------------------------------------
 //    class VCLXPrinterPropertySet
 //    ----------------------------------------------------
@@ -105,18 +83,13 @@ css::uno::Reference< css::beans::XPropertySetInfo > VCLXPrinterPropertySet::getP
 
 ::cppu::IPropertyArrayHelper& VCLXPrinterPropertySet::getInfoHelper()
 {
-    static ::cppu::OPropertyArrayHelper* pPropertyArrayHelper = nullptr;
-    if ( !pPropertyArrayHelper )
-    {
-        ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
-        if( !pPropertyArrayHelper )
-        {
-            sal_uInt16 nElements;
-            css::beans::Property* pProps = ImplGetProperties( nElements );
-            pPropertyArrayHelper = new ::cppu::OPropertyArrayHelper( pProps, nElements, false );
-        }
-    }
-    return *pPropertyArrayHelper ;
+    static ::cppu::OPropertyArrayHelper s_PropertyArrayHelper(
+            css::uno::Sequence<css::beans::Property>{
+                    css::beans::Property( "Orientation", PROPERTY_Orientation, cppu::UnoType<sal_Int16>::get(), 0 ),
+                    css::beans::Property( "Horizontal", PROPERTY_Horizontal, cppu::UnoType<bool>::get(), 0 )},
+            false);
+
+    return s_PropertyArrayHelper;
 }
 
 sal_Bool VCLXPrinterPropertySet::convertFastPropertyValue( css::uno::Any & rConvertedValue, css::uno::Any & rOldValue, sal_Int32 nHandle, const css::uno::Any& rValue )


More information about the Libreoffice-commits mailing list