summaryrefslogtreecommitdiff
path: root/xmlsecurity
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2019-12-17 13:40:44 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2019-12-18 08:47:42 +0100
commit998ad9b8b1d0eb08b2515ea2086b9f3de58492e7 (patch)
treebf918e150840cfae25808c76b2c41c2cb2791bbf /xmlsecurity
parentbcd45c2ab6cbdef1d8b82b327be92b30d49c09fb (diff)
Elide use of rtl_Instance (which is obsoleted by C++11 thread-safe statics)
Change-Id: I522c42d1fe97de2b1a8a629c97cf68e11006a328 Reviewed-on: https://gerrit.libreoffice.org/85327 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'xmlsecurity')
-rw-r--r--xmlsecurity/source/xmlsec/nss/nssinitializer.cxx41
1 files changed, 9 insertions, 32 deletions
diff --git a/xmlsecurity/source/xmlsec/nss/nssinitializer.cxx b/xmlsecurity/source/xmlsec/nss/nssinitializer.cxx
index e268e6e25d63..421adfdf16e3 100644
--- a/xmlsecurity/source/xmlsec/nss/nssinitializer.cxx
+++ b/xmlsecurity/source/xmlsec/nss/nssinitializer.cxx
@@ -25,7 +25,6 @@
#include <cppuhelper/supportsservice.hxx>
#include <officecfg/Office/Common.hxx>
#include <sal/types.h>
-#include <rtl/instance.hxx>
#include <rtl/bootstrap.hxx>
#include <rtl/string.hxx>
#include <osl/file.hxx>
@@ -158,35 +157,6 @@ salhelper::SingletonRef<InitNSSPrivate>* getInitNSSPrivate()
bool nsscrypto_initialize( const css::uno::Reference< css::uno::XComponentContext > &rxContext, bool & out_nss_init );
-struct InitNSSInitialize
-{
- css::uno::Reference< css::uno::XComponentContext > m_xContext;
-
- explicit InitNSSInitialize(const css::uno::Reference<css::uno::XComponentContext> &rxContext)
- : m_xContext(rxContext)
- {
- }
-
- bool * operator()()
- {
- static bool bInitialized = false;
- bool bNSSInit = false;
- bInitialized = nsscrypto_initialize( m_xContext, bNSSInit );
- if (bNSSInit)
- atexit(nsscrypto_finalize );
- return & bInitialized;
- }
-};
-
-struct GetNSSInitStaticMutex
-{
- ::osl::Mutex* operator()()
- {
- static ::osl::Mutex aNSSInitMutex;
- return &aNSSInitMutex;
- }
-};
-
#ifdef XMLSEC_CRYPTO_NSS
void deleteRootsModule()
@@ -504,8 +474,15 @@ ONSSInitializer::~ONSSInitializer()
bool ONSSInitializer::initNSS( const css::uno::Reference< css::uno::XComponentContext > &rxContext )
{
- return *rtl_Instance< bool, InitNSSInitialize, ::osl::MutexGuard, GetNSSInitStaticMutex >
- ::create( InitNSSInitialize( rxContext ), GetNSSInitStaticMutex() );
+ static bool gbInitialized = [&rxContext]()
+ {
+ bool bNSSInit = false;
+ bool bInitialized = nsscrypto_initialize( rxContext, bNSSInit );
+ if (bNSSInit)
+ atexit(nsscrypto_finalize);
+ return bInitialized;
+ }();
+ return gbInitialized;
}
css::uno::Reference< css::xml::crypto::XDigestContext > SAL_CALL ONSSInitializer::getDigestContext( ::sal_Int32 nDigestID, const css::uno::Sequence< css::beans::NamedValue >& aParams )