summaryrefslogtreecommitdiffstats
path: root/unotools/source/config/moduleoptions.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'unotools/source/config/moduleoptions.cxx')
-rw-r--r--unotools/source/config/moduleoptions.cxx20
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);
}
}