summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Kaganski <mike.kaganski@collabora.com>2021-04-02 15:12:00 +0300
committerMike Kaganski <mike.kaganski@collabora.com>2021-04-02 17:22:21 +0200
commit86d298f87f00fe70d31a65b7e98f9b17fa80cb6b (patch)
tree0b7a389105ead641d092e56ff6fb1d49180f6265
parent711ec7b6c71410b850cdf6d1411d054ca34ec5a0 (diff)
Simplify some static variable initializations
Change-Id: I6cdd44aa66b9597ccc51fc3fd69b57485ccb3230 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113515 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
-rw-r--r--basctl/source/dlged/dlgedfac.cxx13
-rw-r--r--basic/source/classes/sbunoobj.cxx14
-rw-r--r--basic/source/runtime/iosys.cxx14
-rw-r--r--basic/source/runtime/methods1.cxx17
-rw-r--r--comphelper/source/misc/lok.cxx14
-rw-r--r--connectivity/source/drivers/file/fcomp.cxx4
-rw-r--r--desktop/source/app/crashreport.cxx10
-rw-r--r--sc/source/ui/unoobj/textuno.cxx28
-rw-r--r--sfx2/source/appl/appinit.cxx22
9 files changed, 51 insertions, 85 deletions
diff --git a/basctl/source/dlged/dlgedfac.cxx b/basctl/source/dlged/dlgedfac.cxx
index 38c8dc0d1a9c..98c0f260b0f9 100644
--- a/basctl/source/dlged/dlgedfac.cxx
+++ b/basctl/source/dlged/dlgedfac.cxx
@@ -46,20 +46,17 @@ DlgEdFactory::~DlgEdFactory() COVERITY_NOEXCEPT_FALSE
IMPL_LINK( DlgEdFactory, MakeObject, SdrObjCreatorParams, aParams, SdrObject* )
{
- static bool bNeedsInit = true;
- static uno::Reference< lang::XMultiServiceFactory > xDialogSFact;
-
- if( bNeedsInit )
- {
+ static const uno::Reference<lang::XMultiServiceFactory> xDialogSFact = [] {
+ uno::Reference<lang::XMultiServiceFactory> xFact;
uno::Reference< uno::XComponentContext> xContext = ::comphelper::getProcessComponentContext();
uno::Reference< container::XNameContainer > xC( xContext->getServiceManager()->createInstanceWithContext( "com.sun.star.awt.UnoControlDialogModel", xContext ), uno::UNO_QUERY );
if( xC.is() )
{
uno::Reference< lang::XMultiServiceFactory > xModFact( xC, uno::UNO_QUERY );
- xDialogSFact = xModFact;
+ xFact = xModFact;
}
- bNeedsInit = false;
- }
+ return xFact;
+ }();
SdrObject* pNewObj = nullptr;
if( (aParams.nInventor == SdrInventor::BasicDialog) &&
diff --git a/basic/source/classes/sbunoobj.cxx b/basic/source/classes/sbunoobj.cxx
index 9f00a8f231c9..fcd491462528 100644
--- a/basic/source/classes/sbunoobj.cxx
+++ b/basic/source/classes/sbunoobj.cxx
@@ -233,22 +233,18 @@ static Reference< XTypeConverter > const & getTypeConverter_Impl()
// #111851 factory function to create an OLE object
SbUnoObject* createOLEObject_Impl( const OUString& aType )
{
- static Reference< XMultiServiceFactory > xOLEFactory;
- static bool bNeedsInit = true;
-
- if( bNeedsInit )
- {
- bNeedsInit = false;
-
+ static const Reference<XMultiServiceFactory> xOLEFactory = [] {
+ Reference<XMultiServiceFactory> xFactory;
Reference< XComponentContext > xContext( comphelper::getProcessComponentContext() );
if( xContext.is() )
{
Reference<XMultiComponentFactory> xSMgr = xContext->getServiceManager();
- xOLEFactory.set(
+ xFactory.set(
xSMgr->createInstanceWithContext( "com.sun.star.bridge.OleObjectFactory", xContext ),
UNO_QUERY );
}
- }
+ return xFactory;
+ }();
SbUnoObject* pUnoObj = nullptr;
if( xOLEFactory.is() )
diff --git a/basic/source/runtime/iosys.cxx b/basic/source/runtime/iosys.cxx
index 4c991c6676c7..0cf83c509a39 100644
--- a/basic/source/runtime/iosys.cxx
+++ b/basic/source/runtime/iosys.cxx
@@ -133,17 +133,12 @@ void SbiStream::MapError()
// #89378 New semantic: Don't just ask for UNO but for UCB
bool hasUno()
{
- static bool bNeedInit = true;
- static bool bRetVal = true;
-
- if( bNeedInit )
- {
- bNeedInit = false;
+ static const bool bRetVal = [] {
Reference< XComponentContext > xContext = comphelper::getProcessComponentContext();
if( !xContext.is() )
{
// No service manager at all
- bRetVal = false;
+ return false;
}
else
{
@@ -152,10 +147,11 @@ bool hasUno()
if ( !( xManager->queryContentProvider( "file:///" ).is() ) )
{
// No UCB
- bRetVal = false;
+ return false;
}
}
- }
+ return true;
+ }();
return bRetVal;
}
diff --git a/basic/source/runtime/methods1.cxx b/basic/source/runtime/methods1.cxx
index 2f89a90a8149..9addf7140adf 100644
--- a/basic/source/runtime/methods1.cxx
+++ b/basic/source/runtime/methods1.cxx
@@ -71,23 +71,16 @@ static Reference< XCalendar4 > const & getLocaleCalendar()
{
static Reference< XCalendar4 > xCalendar = LocaleCalendar2::create(getProcessComponentContext());
static css::lang::Locale aLastLocale;
- static bool bNeedsInit = true;
+ static bool bNeedsReload = true;
css::lang::Locale aLocale = Application::GetSettings().GetLanguageTag().getLocale();
- bool bNeedsReload = false;
- if( bNeedsInit )
- {
- bNeedsInit = false;
- bNeedsReload = true;
- }
- else if( aLocale.Language != aLastLocale.Language ||
+ bNeedsReload = bNeedsReload ||
+ ( aLocale.Language != aLastLocale.Language ||
aLocale.Country != aLastLocale.Country ||
- aLocale.Variant != aLastLocale.Variant )
- {
- bNeedsReload = true;
- }
+ aLocale.Variant != aLastLocale.Variant );
if( bNeedsReload )
{
+ bNeedsReload = false;
aLastLocale = aLocale;
xCalendar->loadDefaultCalendar( aLocale );
}
diff --git a/comphelper/source/misc/lok.cxx b/comphelper/source/misc/lok.cxx
index 796a3dc3b839..fe7c742e4ec3 100644
--- a/comphelper/source/misc/lok.cxx
+++ b/comphelper/source/misc/lok.cxx
@@ -214,10 +214,8 @@ bool isAllowlistedLanguage(const OUString& lang)
(void) lang;
return true;
#else
- static bool bInitialized = false;
- static std::vector<OUString> aAllowlist;
- if (!bInitialized)
- {
+ static const std::vector<OUString> aAllowlist = [] {
+ std::vector<OUString> aList;
// coverity[tainted_data] - we trust the contents of this variable
const char* pAllowlist = getenv("LOK_ALLOWLIST_LANGUAGES");
if (pAllowlist)
@@ -231,16 +229,16 @@ bool isAllowlistedLanguage(const OUString& lang)
continue;
std::cerr << s << " ";
- aAllowlist.emplace_back(OStringToOUString(s.c_str(), RTL_TEXTENCODING_UTF8));
+ aList.emplace_back(OStringToOUString(s.c_str(), RTL_TEXTENCODING_UTF8));
}
std::cerr << std::endl;
}
- if (aAllowlist.empty())
+ if (aList.empty())
std::cerr << "No language allowlisted, turning off the language support." << std::endl;
- bInitialized = true;
- }
+ return aList;
+ }();
if (aAllowlist.empty())
return false;
diff --git a/connectivity/source/drivers/file/fcomp.cxx b/connectivity/source/drivers/file/fcomp.cxx
index 982d0266b949..44d175be69f3 100644
--- a/connectivity/source/drivers/file/fcomp.cxx
+++ b/connectivity/source/drivers/file/fcomp.cxx
@@ -533,8 +533,6 @@ OOperand* OPredicateCompiler::execute_Operand(OSQLParseNode const * pPredicateNo
bool OPredicateInterpreter::evaluate(OCodeList& rCodeList)
{
- static bool bResult;
-
if (!(rCodeList[0]))
return true; // no Predicate
@@ -553,7 +551,7 @@ bool OPredicateInterpreter::evaluate(OCodeList& rCodeList)
DBG_ASSERT(m_aStack.empty(), "Stack error");
DBG_ASSERT(pOperand, "Stack error");
- bResult = pOperand->isValid();
+ const bool bResult = pOperand->isValid();
if (typeid(OOperandResult) == typeid(*pOperand))
delete pOperand;
return bResult;
diff --git a/desktop/source/app/crashreport.cxx b/desktop/source/app/crashreport.cxx
index ff9c80c51996..84ceabb619bd 100644
--- a/desktop/source/app/crashreport.cxx
+++ b/desktop/source/app/crashreport.cxx
@@ -200,15 +200,7 @@ void CrashReporter::updateMinidumpLocation()
bool CrashReporter::crashReportInfoExists()
{
- static bool first = true;
- static bool InfoExist = false;
-
- if (first)
- {
- first = false;
- InfoExist = crashreport::readConfig(CrashReporter::getIniFileName(), nullptr);
- }
-
+ static const bool InfoExist = crashreport::readConfig(CrashReporter::getIniFileName(), nullptr);
return InfoExist;
}
diff --git a/sc/source/ui/unoobj/textuno.cxx b/sc/source/ui/unoobj/textuno.cxx
index 8af20f45485b..18f40a764ce1 100644
--- a/sc/source/ui/unoobj/textuno.cxx
+++ b/sc/source/ui/unoobj/textuno.cxx
@@ -51,18 +51,16 @@ using namespace com::sun::star;
static const SvxItemPropertySet * lcl_GetHdFtPropertySet()
{
- static SfxItemPropertyMapEntry aHdFtPropertyMap_Impl[] =
- {
- SVX_UNOEDIT_CHAR_PROPERTIES,
- SVX_UNOEDIT_FONT_PROPERTIES,
- SVX_UNOEDIT_PARA_PROPERTIES,
- SVX_UNOEDIT_NUMBERING_PROPERTIE, // for completeness of service ParagraphProperties
- { u"", 0, css::uno::Type(), 0, 0 }
- };
- static bool bTwipsSet = false;
-
- if (!bTwipsSet)
- {
+ static const SvxItemPropertySet aHdFtPropertySet_Impl = [] {
+ SfxItemPropertyMapEntry aHdFtPropertyMap_Impl[] =
+ {
+ SVX_UNOEDIT_CHAR_PROPERTIES,
+ SVX_UNOEDIT_FONT_PROPERTIES,
+ SVX_UNOEDIT_PARA_PROPERTIES,
+ SVX_UNOEDIT_NUMBERING_PROPERTIE, // for completeness of service ParagraphProperties
+ { u"", 0, css::uno::Type(), 0, 0 }
+ };
+
// modify PropertyMap to include CONVERT_TWIPS flag for font height
// (headers/footers are in twips)
@@ -79,9 +77,9 @@ static const SvxItemPropertySet * lcl_GetHdFtPropertySet()
++pEntry;
}
- bTwipsSet = true;
- }
- static SvxItemPropertySet aHdFtPropertySet_Impl( aHdFtPropertyMap_Impl, SdrObject::GetGlobalDrawObjectItemPool() );
+
+ return SvxItemPropertySet(aHdFtPropertyMap_Impl, SdrObject::GetGlobalDrawObjectItemPool());
+ }();
return &aHdFtPropertySet_Impl;
}
diff --git a/sfx2/source/appl/appinit.cxx b/sfx2/source/appl/appinit.cxx
index fbecd9d66b61..97b85ef84a92 100644
--- a/sfx2/source/appl/appinit.cxx
+++ b/sfx2/source/appl/appinit.cxx
@@ -147,30 +147,28 @@ extern "C" bool GetSpecialCharsForEdit(weld::Widget* i_pParent, const vcl::Font&
static OUString SfxGetSpecialCharsForEdit(weld::Widget* pParent, const vcl::Font& rFont)
{
- static bool bDetermineFunction = false;
- static PFunc_getSpecialCharsForEdit pfunc_getSpecialCharsForEdit = nullptr;
-
- SolarMutexGuard aGuard;
- if ( !bDetermineFunction )
- {
- bDetermineFunction = true;
-
+ static const PFunc_getSpecialCharsForEdit pfunc_getSpecialCharsForEdit = [] {
+ PFunc_getSpecialCharsForEdit pfunc = nullptr;
#ifndef DISABLE_DYNLOADING
osl::Module aMod;
aMod.loadRelative(&thisModule, SVLIBRARY("cui"));
// get symbol
- pfunc_getSpecialCharsForEdit = reinterpret_cast<PFunc_getSpecialCharsForEdit>(aMod.getFunctionSymbol("GetSpecialCharsForEdit"));
- DBG_ASSERT( pfunc_getSpecialCharsForEdit, "GetSpecialCharsForEdit() not found!" );
+ pfunc = reinterpret_cast<PFunc_getSpecialCharsForEdit>(aMod.getFunctionSymbol("GetSpecialCharsForEdit"));
+ DBG_ASSERT( pfunc, "GetSpecialCharsForEdit() not found!" );
aMod.release();
#else
- pfunc_getSpecialCharsForEdit = GetSpecialCharsForEdit;
+ pfunc = GetSpecialCharsForEdit;
#endif
- }
+ return pfunc;
+ }();
OUString aRet;
if ( pfunc_getSpecialCharsForEdit )
+ {
+ SolarMutexGuard aGuard;
(*pfunc_getSpecialCharsForEdit)( pParent, rFont, aRet );
+ }
return aRet;
}