use unique_ptr for SvxSearchItem in ScGlobal

Change-Id: I45f5d2bb699ef8cc6f32995bf15c2bf9095704fa
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100557
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
This commit is contained in:
Noel Grandin
2020-08-11 17:08:27 +02:00
parent 6b7d8f4f5f
commit e51621d23d
2 changed files with 10 additions and 11 deletions

View File

@@ -502,7 +502,7 @@ namespace utl {
class ScGlobal
{
static SvxSearchItem* pSearchItem;
static std::unique_ptr<SvxSearchItem> xSearchItem;
static ScAutoFormat* pAutoFormat;
static std::atomic<LegacyFuncCollection*> pLegacyFuncCollection;
static std::atomic<ScUnoAddInCollection*> pAddInCollection;

View File

@@ -72,7 +72,7 @@
#include <docsh.hxx>
tools::SvRef<ScDocShell> ScGlobal::xDrawClipDocShellRef;
SvxSearchItem* ScGlobal::pSearchItem = nullptr;
std::unique_ptr<SvxSearchItem> ScGlobal::xSearchItem;
ScAutoFormat* ScGlobal::pAutoFormat = nullptr;
std::atomic<LegacyFuncCollection*> ScGlobal::pLegacyFuncCollection(nullptr);
std::atomic<ScUnoAddInCollection*> ScGlobal::pAddInCollection(nullptr);
@@ -214,23 +214,22 @@ bool ScGlobal::CheckWidthInvalidate( bool& bNumFormatChanged,
const SvxSearchItem& ScGlobal::GetSearchItem()
{
assert(!bThreadedGroupCalcInProgress);
if (!pSearchItem)
if (!xSearchItem)
{
pSearchItem = new SvxSearchItem( SID_SEARCH_ITEM );
pSearchItem->SetAppFlag( SvxSearchApp::CALC );
xSearchItem.reset(new SvxSearchItem( SID_SEARCH_ITEM ));
xSearchItem->SetAppFlag( SvxSearchApp::CALC );
}
return *pSearchItem;
return *xSearchItem;
}
void ScGlobal::SetSearchItem( const SvxSearchItem& rNew )
{
assert(!bThreadedGroupCalcInProgress);
// FIXME: An assignment operator would be nice here
delete pSearchItem;
pSearchItem = rNew.Clone();
xSearchItem.reset(rNew.Clone());
pSearchItem->SetWhich( SID_SEARCH_ITEM );
pSearchItem->SetAppFlag( SvxSearchApp::CALC );
xSearchItem->SetWhich( SID_SEARCH_ITEM );
xSearchItem->SetAppFlag( SvxSearchApp::CALC );
}
void ScGlobal::ClearAutoFormat()
@@ -529,7 +528,7 @@ void ScGlobal::Clear()
theAddInAsyncTbl.clear();
ExitExternalFunc();
ClearAutoFormat();
DELETEZ(pSearchItem);
xSearchItem.reset();
delete pLegacyFuncCollection.load(); pLegacyFuncCollection = nullptr;
delete pAddInCollection.load(); pAddInCollection = nullptr;
xUserList.reset();