diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-03-20 12:54:11 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-03-22 09:53:45 +0100 |
commit | b7654432bfeca619b7657abc8d27193e44cf4dfc (patch) | |
tree | 0935306e00e967c1dca4efc8af57f4d67c30a508 /sc/source/filter | |
parent | f82888653c853f236ab0035bb578a7129ec72fa5 (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.hxx | 2 | ||||
-rw-r--r-- | sc/source/filter/oox/revisionfragment.cxx | 2 | ||||
-rw-r--r-- | sc/source/filter/xcl97/XclImpChangeTrack.cxx | 7 | ||||
-rw-r--r-- | sc/source/filter/xml/XMLChangeTrackingImportHelper.cxx | 2 | ||||
-rw-r--r-- | sc/source/filter/xml/XMLConsolidationContext.cxx | 24 | ||||
-rw-r--r-- | sc/source/filter/xml/xmlimprt.cxx | 4 |
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)); } } } |