summaryrefslogtreecommitdiff
path: root/sc/source/filter
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2018-03-20 12:54:11 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2018-03-22 09:53:45 +0100
commitb7654432bfeca619b7657abc8d27193e44cf4dfc (patch)
tree0935306e00e967c1dca4efc8af57f4d67c30a508 /sc/source/filter
parentf82888653c853f236ab0035bb578a7129ec72fa5 (diff)
loplugin:useuniqueptr in ScDocument
and fix bug where we were deleting a pointer to an object we did not own via pFormatExchangeList Change-Id: I488c679734c48bd21bc6be04837e037e97550647 Reviewed-on: https://gerrit.libreoffice.org/51668 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'sc/source/filter')
-rw-r--r--sc/source/filter/inc/XclImpChangeTrack.hxx2
-rw-r--r--sc/source/filter/oox/revisionfragment.cxx2
-rw-r--r--sc/source/filter/xcl97/XclImpChangeTrack.cxx7
-rw-r--r--sc/source/filter/xml/XMLChangeTrackingImportHelper.cxx2
-rw-r--r--sc/source/filter/xml/XMLConsolidationContext.cxx24
-rw-r--r--sc/source/filter/xml/xmlimprt.cxx4
6 files changed, 20 insertions, 21 deletions
diff --git a/sc/source/filter/inc/XclImpChangeTrack.hxx b/sc/source/filter/inc/XclImpChangeTrack.hxx
index 82e1f2bb74af..9f374472e76c 100644
--- a/sc/source/filter/inc/XclImpChangeTrack.hxx
+++ b/sc/source/filter/inc/XclImpChangeTrack.hxx
@@ -54,7 +54,7 @@ private:
XclImpChTrRecHeader aRecHeader;
OUString sOldUsername;
- ScChangeTrack* pChangeTrack;
+ std::unique_ptr<ScChangeTrack> pChangeTrack;
tools::SvRef<SotStorageStream> xInStrm; // input stream
XclImpStream* pStrm; // stream import class
sal_uInt16 nTabIdCount;
diff --git a/sc/source/filter/oox/revisionfragment.cxx b/sc/source/filter/oox/revisionfragment.cxx
index bacde362a7ab..bd38fb4ffb0d 100644
--- a/sc/source/filter/oox/revisionfragment.cxx
+++ b/sc/source/filter/oox/revisionfragment.cxx
@@ -269,7 +269,7 @@ void RevisionHeadersFragment::finalizeImport()
pCT->SetUser(aSelfUser); // set the default user to the document owner.
pCT->SetUseFixDateTime(false);
- rDoc.SetChangeTrack(pCT.release());
+ rDoc.SetChangeTrack(std::move(pCT));
// Turn on visibility of tracked changes.
ScChangeViewSettings aSettings;
diff --git a/sc/source/filter/xcl97/XclImpChangeTrack.cxx b/sc/source/filter/xcl97/XclImpChangeTrack.cxx
index 797075a8b08d..8a943ce5aa79 100644
--- a/sc/source/filter/xcl97/XclImpChangeTrack.cxx
+++ b/sc/source/filter/xcl97/XclImpChangeTrack.cxx
@@ -58,7 +58,7 @@ XclImpChangeTrack::XclImpChangeTrack( const XclImpRoot& rRoot, const XclImpStrea
xInStrm->Seek( STREAM_SEEK_TO_BEGIN );
pStrm = new XclImpStream( *xInStrm, GetRoot() );
pStrm->CopyDecrypterFrom( rBookStrm );
- pChangeTrack = new ScChangeTrack( &GetDocRef() );
+ pChangeTrack.reset(new ScChangeTrack( &GetDocRef() ));
sOldUsername = pChangeTrack->GetUser();
pChangeTrack->SetUseFixDateTime( true );
@@ -70,7 +70,7 @@ XclImpChangeTrack::XclImpChangeTrack( const XclImpRoot& rRoot, const XclImpStrea
XclImpChangeTrack::~XclImpChangeTrack()
{
- delete pChangeTrack;
+ pChangeTrack.reset();
delete pStrm;
}
@@ -491,8 +491,7 @@ void XclImpChangeTrack::Apply()
pChangeTrack->SetUser( sOldUsername );
pChangeTrack->SetUseFixDateTime( false );
- GetDoc().SetChangeTrack( pChangeTrack );
- pChangeTrack = nullptr;
+ GetDoc().SetChangeTrack( std::move(pChangeTrack) );
ScChangeViewSettings aSettings;
aSettings.SetShowChanges( true );
diff --git a/sc/source/filter/xml/XMLChangeTrackingImportHelper.cxx b/sc/source/filter/xml/XMLChangeTrackingImportHelper.cxx
index f3147046c2fd..3144fe1ece3c 100644
--- a/sc/source/filter/xml/XMLChangeTrackingImportHelper.cxx
+++ b/sc/source/filter/xml/XMLChangeTrackingImportHelper.cxx
@@ -887,7 +887,7 @@ void ScXMLChangeTrackingImportHelper::CreateChangeTrack(ScDocument* pTempDoc)
if ( pTrack->GetLast() )
pTrack->SetLastSavedActionNumber(pTrack->GetLast()->GetActionNumber());
- pDoc->SetChangeTrack(pTrack);
+ pDoc->SetChangeTrack(std::unique_ptr<ScChangeTrack>(pTrack));
}
}
diff --git a/sc/source/filter/xml/XMLConsolidationContext.cxx b/sc/source/filter/xml/XMLConsolidationContext.cxx
index cfdbe34a18db..f27b4b1508de 100644
--- a/sc/source/filter/xml/XMLConsolidationContext.cxx
+++ b/sc/source/filter/xml/XMLConsolidationContext.cxx
@@ -77,11 +77,11 @@ void SAL_CALL ScXMLConsolidationContext::endFastElement( sal_Int32 /*nElement*/
{
if (bTargetAddr)
{
- ScConsolidateParam aConsParam;
- aConsParam.nCol = aTargetAddr.Col();
- aConsParam.nRow = aTargetAddr.Row();
- aConsParam.nTab = aTargetAddr.Tab();
- aConsParam.eFunction = eFunction;
+ std::unique_ptr<ScConsolidateParam> pConsParam(new ScConsolidateParam);
+ pConsParam->nCol = aTargetAddr.Col();
+ pConsParam->nRow = aTargetAddr.Row();
+ pConsParam->nTab = aTargetAddr.Tab();
+ pConsParam->eFunction = eFunction;
sal_uInt16 nCount = static_cast<sal_uInt16>(std::min( ScRangeStringConverter::GetTokenCount( sSourceList ), sal_Int32(0xFFFF) ));
ScArea** ppAreas = nCount ? new ScArea*[ nCount ] : nullptr;
@@ -99,7 +99,7 @@ void SAL_CALL ScXMLConsolidationContext::endFastElement( sal_Int32 /*nElement*/
}
}
- aConsParam.SetAreas( ppAreas, nCount );
+ pConsParam->SetAreas( ppAreas, nCount );
// array is copied in SetAreas
for( nIndex = 0; nIndex < nCount; ++nIndex )
@@ -107,19 +107,19 @@ void SAL_CALL ScXMLConsolidationContext::endFastElement( sal_Int32 /*nElement*/
delete[] ppAreas;
}
- aConsParam.bByCol = aConsParam.bByRow = false;
+ pConsParam->bByCol = pConsParam->bByRow = false;
if( IsXMLToken(sUseLabel, XML_COLUMN ) )
- aConsParam.bByCol = true;
+ pConsParam->bByCol = true;
else if( IsXMLToken( sUseLabel, XML_ROW ) )
- aConsParam.bByRow = true;
+ pConsParam->bByRow = true;
else if( IsXMLToken( sUseLabel, XML_BOTH ) )
- aConsParam.bByCol = aConsParam.bByRow = true;
+ pConsParam->bByCol = pConsParam->bByRow = true;
- aConsParam.bReferenceData = bLinkToSource;
+ pConsParam->bReferenceData = bLinkToSource;
ScDocument* pDoc = GetScImport().GetDocument();
if( pDoc )
- pDoc->SetConsolidateDlgData( &aConsParam );
+ pDoc->SetConsolidateDlgData( std::move(pConsParam) );
}
}
diff --git a/sc/source/filter/xml/xmlimprt.cxx b/sc/source/filter/xml/xmlimprt.cxx
index c85589ac9a73..c6f64e737540 100644
--- a/sc/source/filter/xml/xmlimprt.cxx
+++ b/sc/source/filter/xml/xmlimprt.cxx
@@ -1137,9 +1137,9 @@ void ScXMLImport::SetConfigurationSettings(const uno::Sequence<beans::PropertyVa
else
{
std::set<OUString> aUsers;
- ScChangeTrack* pTrack = new ScChangeTrack(pDoc, aUsers);
+ std::unique_ptr<ScChangeTrack> pTrack( new ScChangeTrack(pDoc, aUsers) );
pTrack->SetProtection(aPass);
- pDoc->SetChangeTrack(pTrack);
+ pDoc->SetChangeTrack(std::move(pTrack));
}
}
}