[Libreoffice-commits] core.git: sc/inc sc/source
Noel Grandin (via logerrit)
logerrit at kemper.freedesktop.org
Tue Aug 4 12:58:15 UTC 2020
sc/inc/global.hxx | 12 +++----
sc/source/core/data/dpcache.cxx | 2 -
sc/source/core/data/global.cxx | 46 ++++++++++++++----------------
sc/source/core/data/table3.cxx | 2 -
sc/source/core/tool/cellkeytranslator.cxx | 2 -
sc/source/core/tool/compare.cxx | 2 -
sc/source/ui/app/inputwin.cxx | 2 -
7 files changed, 33 insertions(+), 35 deletions(-)
New commits:
commit 8c8543ed7f554eb9b26456dbeba6614e26699c89
Author: Noel Grandin <noel.grandin at collabora.co.uk>
AuthorDate: Tue Aug 4 10:27:12 2020 +0200
Commit: Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Tue Aug 4 14:57:27 2020 +0200
fix more leaks in CppunitTest_sc_cache_test
To be honest, I don't know why this fixes the leak, but it's generally
good practice anyway to use unique_ptr.
Change-Id: Ic5aa2a0c6ab092450e9eae96616a998c08e2e723
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100045
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>
diff --git a/sc/inc/global.hxx b/sc/inc/global.hxx
index 3f7ce5d622ee..309455adc348 100644
--- a/sc/inc/global.hxx
+++ b/sc/inc/global.hxx
@@ -510,10 +510,10 @@ class ScGlobal
static std::map<const char*, OUString>* pRscString;
static OUString* pStrScDoc;
static SC_DLLPUBLIC const OUString aEmptyOUString;
- static OUString* pStrClipDocName;
- static SvxBrushItem* pEmptyBrushItem;
- static SvxBrushItem* pButtonBrushItem;
- static SvxBrushItem* pEmbeddedBrushItem;
+ static OUString aStrClipDocName;
+ static std::unique_ptr<SvxBrushItem> xEmptyBrushItem;
+ static std::unique_ptr<SvxBrushItem> xButtonBrushItem;
+ static std::unique_ptr<SvxBrushItem> xEmbeddedBrushItem;
static ScFunctionList* pStarCalcFunctionList;
static ScFunctionMgr* pStarCalcFunctionMgr;
@@ -536,7 +536,7 @@ class ScGlobal
static void InitPPT();
public:
- static SvtSysLocale* pSysLocale;
+ static std::unique_ptr<SvtSysLocale> xSysLocale;
SC_DLLPUBLIC static const LocaleDataWrapper* getLocaleDataPtr();
SC_DLLPUBLIC static const CharClass* getCharClassPtr();
@@ -594,7 +594,7 @@ public:
SC_DLLPUBLIC static void Clear(); // at the end of the program
static void InitTextHeight(const SfxItemPool* pPool);
- static SvxBrushItem* GetEmptyBrushItem() { return pEmptyBrushItem; }
+ static SvxBrushItem* GetEmptyBrushItem() { return xEmptyBrushItem.get(); }
static SvxBrushItem* GetButtonBrushItem();
static const OUString& GetEmptyOUString() { return aEmptyOUString; }
diff --git a/sc/source/core/data/dpcache.cxx b/sc/source/core/data/dpcache.cxx
index 32a8a83b2b73..42fafd7fff1d 100644
--- a/sc/source/core/data/dpcache.cxx
+++ b/sc/source/core/data/dpcache.cxx
@@ -815,7 +815,7 @@ bool ScDPCache::ValidQuery( SCROW nRow, const ScQueryParam &rParam) const
{
OUString aQueryStr = rEntry.GetQueryItem().maString.getString();
css::uno::Sequence< sal_Int32 > xOff;
- const LanguageType nLang = ScGlobal::pSysLocale->GetLanguageTag().getLanguageType();
+ const LanguageType nLang = ScGlobal::xSysLocale->GetLanguageTag().getLanguageType();
OUString aCell = pTransliteration->transliterate(
aCellStr, nLang, 0, aCellStr.getLength(), &xOff);
OUString aQuer = pTransliteration->transliterate(
diff --git a/sc/source/core/data/global.cxx b/sc/source/core/data/global.cxx
index f416d28673fe..538702c87097 100644
--- a/sc/source/core/data/global.cxx
+++ b/sc/source/core/data/global.cxx
@@ -79,7 +79,7 @@ std::atomic<ScUnoAddInCollection*> ScGlobal::pAddInCollection(nullptr);
ScUserList* ScGlobal::pUserList = nullptr;
LanguageType ScGlobal::eLnge = LANGUAGE_SYSTEM;
std::atomic<css::lang::Locale*> ScGlobal::pLocale(nullptr);
-SvtSysLocale* ScGlobal::pSysLocale = nullptr;
+std::unique_ptr<SvtSysLocale> ScGlobal::xSysLocale;
CalendarWrapper* ScGlobal::pCalendar = nullptr;
std::atomic<CollatorWrapper*> ScGlobal::pCollator(nullptr);
std::atomic<CollatorWrapper*> ScGlobal::pCaseCollator(nullptr);
@@ -87,11 +87,11 @@ std::atomic<::utl::TransliterationWrapper*> ScGlobal::pTransliteration(nullptr);
std::atomic<::utl::TransliterationWrapper*> ScGlobal::pCaseTransliteration(nullptr);
css::uno::Reference< css::i18n::XOrdinalSuffix> ScGlobal::xOrdinalSuffix;
const OUString ScGlobal::aEmptyOUString;
-OUString* ScGlobal::pStrClipDocName = nullptr;
+OUString ScGlobal::aStrClipDocName;
-SvxBrushItem* ScGlobal::pEmptyBrushItem = nullptr;
-SvxBrushItem* ScGlobal::pButtonBrushItem = nullptr;
-SvxBrushItem* ScGlobal::pEmbeddedBrushItem = nullptr;
+std::unique_ptr<SvxBrushItem> ScGlobal::xEmptyBrushItem;
+std::unique_ptr<SvxBrushItem> ScGlobal::xButtonBrushItem;
+std::unique_ptr<SvxBrushItem> ScGlobal::xEmbeddedBrushItem;
ScFunctionList* ScGlobal::pStarCalcFunctionList = nullptr;
ScFunctionMgr* ScGlobal::pStarCalcFunctionMgr = nullptr;
@@ -430,8 +430,8 @@ OUString ScGlobal::GetLongErrorString(FormulaError nErr)
SvxBrushItem* ScGlobal::GetButtonBrushItem()
{
assert(!bThreadedGroupCalcInProgress);
- pButtonBrushItem->SetColor( Application::GetSettings().GetStyleSettings().GetFaceColor() );
- return pButtonBrushItem;
+ xButtonBrushItem->SetColor( Application::GetSettings().GetStyleSettings().GetFaceColor() );
+ return xButtonBrushItem.get();
}
void ScGlobal::Init()
@@ -441,11 +441,11 @@ void ScGlobal::Init()
// FIXME: So remove this variable?
eLnge = LANGUAGE_SYSTEM;
- pSysLocale = new SvtSysLocale;
+ xSysLocale = std::make_unique<SvtSysLocale>();
- pEmptyBrushItem = new SvxBrushItem( COL_TRANSPARENT, ATTR_BACKGROUND );
- pButtonBrushItem = new SvxBrushItem( Color(), ATTR_BACKGROUND );
- pEmbeddedBrushItem = new SvxBrushItem( COL_LIGHTCYAN, ATTR_BACKGROUND );
+ xEmptyBrushItem = std::make_unique<SvxBrushItem>( COL_TRANSPARENT, ATTR_BACKGROUND );
+ xButtonBrushItem = std::make_unique<SvxBrushItem>( Color(), ATTR_BACKGROUND );
+ xEmbeddedBrushItem = std::make_unique<SvxBrushItem>( COL_LIGHTCYAN, ATTR_BACKGROUND );
InitPPT();
//ScCompiler::InitSymbolsNative();
@@ -456,8 +456,7 @@ void ScGlobal::Init()
InitAddIns();
- pStrClipDocName = new OUString( ScResId( SCSTR_NONAME ) );
- *pStrClipDocName += "1";
+ aStrClipDocName = ScResId( SCSTR_NONAME ) + "1";
// ScDocumentPool::InitVersionMaps() has been called earlier already
}
@@ -485,13 +484,13 @@ void ScGlobal::InitPPT()
const OUString& ScGlobal::GetClipDocName()
{
- return *pStrClipDocName;
+ return aStrClipDocName;
}
void ScGlobal::SetClipDocName( const OUString& rNew )
{
assert(!bThreadedGroupCalcInProgress);
- *pStrClipDocName = rNew;
+ aStrClipDocName = rNew;
}
void ScGlobal::InitTextHeight(const SfxItemPool* pPool)
@@ -541,18 +540,17 @@ void ScGlobal::Clear()
ScCompiler::DeInit();
ScInterpreter::GlobalExit(); // Delete static Stack
- DELETEZ(pEmptyBrushItem);
- DELETEZ(pButtonBrushItem);
- DELETEZ(pEmbeddedBrushItem);
+ xEmptyBrushItem.reset();
+ xButtonBrushItem.reset();
+ xEmbeddedBrushItem.reset();
DELETEZ(pEnglishFormatter);
delete pCaseTransliteration.load(); pCaseTransliteration = nullptr;
delete pTransliteration.load(); pTransliteration = nullptr;
delete pCaseCollator.load(); pCaseCollator = nullptr;
delete pCollator.load(); pCollator = nullptr;
DELETEZ(pCalendar);
- DELETEZ(pSysLocale);
+ xSysLocale.reset();
delete pLocale.load(); pLocale = nullptr;
- DELETEZ(pStrClipDocName);
delete pUnitConverter.load(); pUnitConverter = nullptr;
DELETEZ(pFieldEditEngine);
@@ -1009,19 +1007,19 @@ utl::TransliterationWrapper* ScGlobal::GetpTransliteration()
const LocaleDataWrapper* ScGlobal::getLocaleDataPtr()
{
OSL_ENSURE(
- pSysLocale,
+ xSysLocale,
"ScGlobal::getLocaleDataPtr() called before ScGlobal::Init()");
- return pSysLocale->GetLocaleDataPtr();
+ return xSysLocale->GetLocaleDataPtr();
}
const CharClass* ScGlobal::getCharClassPtr()
{
OSL_ENSURE(
- pSysLocale,
+ xSysLocale,
"ScGlobal::getCharClassPtr() called before ScGlobal::Init()");
- return pSysLocale->GetCharClassPtr();
+ return xSysLocale->GetCharClassPtr();
}
CalendarWrapper* ScGlobal::GetCalendar()
diff --git a/sc/source/core/data/table3.cxx b/sc/source/core/data/table3.cxx
index 8ce9cc9552a0..2ce838df8477 100644
--- a/sc/source/core/data/table3.cxx
+++ b/sc/source/core/data/table3.cxx
@@ -2612,7 +2612,7 @@ public:
{
const OUString & rValue = pValueSource1 ? pValueSource1->getString() : *pValueSource2;
const OUString aQueryStr = rItem.maString.getString();
- const LanguageType nLang = ScGlobal::pSysLocale->GetLanguageTag().getLanguageType();
+ const LanguageType nLang = ScGlobal::xSysLocale->GetLanguageTag().getLanguageType();
setupTransliteratorIfNeeded();
const OUString aCell( mpTransliteration->transliterate(
rValue, nLang, 0, rValue.getLength(),
diff --git a/sc/source/core/tool/cellkeytranslator.cxx b/sc/source/core/tool/cellkeytranslator.cxx
index 71d84899f79c..381a48a7e5c2 100644
--- a/sc/source/core/tool/cellkeytranslator.cxx
+++ b/sc/source/core/tool/cellkeytranslator.cxx
@@ -166,7 +166,7 @@ void ScCellKeywordTranslator::transKeyword(OUString& rName, const lang::Locale*
spInstance.reset( new ScCellKeywordTranslator );
LanguageType nLang = pLocale ?
- LanguageTag(*pLocale).makeFallback().getLanguageType() : ScGlobal::pSysLocale->GetLanguageTag().getLanguageType();
+ LanguageTag(*pLocale).makeFallback().getLanguageType() : ScGlobal::xSysLocale->GetLanguageTag().getLanguageType();
Sequence<sal_Int32> aOffsets;
rName = spInstance->maTransWrapper.transliterate(rName, nLang, 0, rName.getLength(), &aOffsets);
lclMatchKeyword(rName, spInstance->maStringNameMap, eOpCode, pLocale);
diff --git a/sc/source/core/tool/compare.cxx b/sc/source/core/tool/compare.cxx
index 6d7150003417..493c33c92d33 100644
--- a/sc/source/core/tool/compare.cxx
+++ b/sc/source/core/tool/compare.cxx
@@ -164,7 +164,7 @@ double CompareFunc( const Compare& rComp, CompareOptions* pOptions )
}
else
{
- const LanguageType nLang = ScGlobal::pSysLocale->GetLanguageTag().getLanguageType();
+ const LanguageType nLang = ScGlobal::xSysLocale->GetLanguageTag().getLanguageType();
OUString aCell( pTransliteration->transliterate(
rCell1.maStr.getString(), nLang, 0,
rCell1.maStr.getLength(), nullptr));
diff --git a/sc/source/ui/app/inputwin.cxx b/sc/source/ui/app/inputwin.cxx
index a867220207f4..299f79e1a9b9 100644
--- a/sc/source/ui/app/inputwin.cxx
+++ b/sc/source/ui/app/inputwin.cxx
@@ -292,7 +292,7 @@ ScInputWindow::~ScInputWindow()
void ScInputWindow::dispose()
{
- bool bDown = ( ScGlobal::pSysLocale == nullptr ); // after Clear?
+ bool bDown = !ScGlobal::xSysLocale; // after Clear?
// if any view's input handler has a pointer to this input window, reset it
// (may be several ones, #74522#)
More information about the Libreoffice-commits
mailing list