diff options
Diffstat (limited to 'unotools/source/config/moduleoptions.cxx')
-rw-r--r-- | unotools/source/config/moduleoptions.cxx | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/unotools/source/config/moduleoptions.cxx b/unotools/source/config/moduleoptions.cxx index 35018b8b88c7..e73165ff4b18 100644 --- a/unotools/source/config/moduleoptions.cxx +++ b/unotools/source/config/moduleoptions.cxx @@ -781,18 +781,18 @@ SvtModuleOptions::SvtModuleOptions() { // no need to take the mutex yet, shared_ptr/weak_ptr are thread-safe m_pImpl = g_pModuleOptions.lock(); + if( m_pImpl ) + return; + + // take the mutex, so we don't accidentally create more than one + ::osl::MutexGuard aGuard( impl_GetOwnStaticMutex() ); + + m_pImpl = g_pModuleOptions.lock(); if( !m_pImpl ) { - // take the mutex, so we don't accidentally create more than one - ::osl::MutexGuard aGuard( impl_GetOwnStaticMutex() ); - - m_pImpl = g_pModuleOptions.lock(); - if( !m_pImpl ) - { - m_pImpl = std::make_shared<SvtModuleOptions_Impl>(); - g_pModuleOptions = m_pImpl; - ItemHolder1::holdConfigItem(EItem::ModuleOptions); - } + m_pImpl = std::make_shared<SvtModuleOptions_Impl>(); + g_pModuleOptions = m_pImpl; + ItemHolder1::holdConfigItem(EItem::ModuleOptions); } } |