sc/inc/dptabres.hxx | 2 +- sc/source/core/data/dptabres.cxx | 29 ++++++++++++++--------------- 2 files changed, 15 insertions(+), 16 deletions(-)
New commits: commit f0d007b7b70e2845df082d11f023e4fca9ac947f Author: Noel Grandin <noel.gran...@collabora.co.uk> Date: Wed Jul 4 13:53:15 2018 +0200 loplugin:useuniqueptr in ScDPDataDimension Change-Id: I74d6fd6a291d518c26180836706e4195f1144c8f Reviewed-on: https://gerrit.libreoffice.org/56944 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/sc/inc/dptabres.hxx b/sc/inc/dptabres.hxx index f57816dcb080..d4d14d735156 100644 --- a/sc/inc/dptabres.hxx +++ b/sc/inc/dptabres.hxx @@ -614,7 +614,7 @@ class ScDPDataDimension private: const ScDPResultData* pResultData; const ScDPResultDimension* pResultDimension; // column - ScDPDataMembers maMembers; + std::vector<std::unique_ptr<ScDPDataMember>> maMembers; bool bIsDataLayout; //! or ptr to IntDimension? public: diff --git a/sc/source/core/data/dptabres.cxx b/sc/source/core/data/dptabres.cxx index df38649bcfcc..d99c0d493c28 100644 --- a/sc/source/core/data/dptabres.cxx +++ b/sc/source/core/data/dptabres.cxx @@ -3534,7 +3534,6 @@ ScDPDataDimension::ScDPDataDimension( const ScDPResultData* pData ) : ScDPDataDimension::~ScDPDataDimension() { - std::for_each(maMembers.begin(), maMembers.end(), std::default_delete<ScDPDataMember>()); } void ScDPDataDimension::InitFrom( const ScDPResultDimension* pDim ) @@ -3553,7 +3552,7 @@ void ScDPDataDimension::InitFrom( const ScDPResultDimension* pDim ) const ScDPResultMember* pResMem = pDim->GetMember(i); ScDPDataMember* pNew = new ScDPDataMember( pResultData, pResMem ); - maMembers.push_back( pNew); + maMembers.emplace_back( pNew); if ( !pResultData->IsLateInit() ) { @@ -3575,7 +3574,7 @@ void ScDPDataDimension::ProcessData( const vector< SCROW >& aDataMembers, const long nCount = maMembers.size(); for (long i=0; i<nCount; i++) { - ScDPDataMember* pMember = maMembers[static_cast<sal_uInt16>(i)]; + ScDPDataMember* pMember = maMembers[static_cast<sal_uInt16>(i)].get(); // always first member for data layout dim if ( bIsDataLayout || ( !aDataMembers.empty() && pMember->IsNamedItem(aDataMembers[0]) ) ) @@ -3633,7 +3632,7 @@ void ScDPDataDimension::FillDataRow( const ScDPResultMember* pRefMember = pRefDim->GetMember(nMemberPos); if ( pRefMember->IsVisible() ) //TODO: here or in ScDPDataMember::FillDataRow ??? { - const ScDPDataMember* pDataMember = maMembers[static_cast<sal_uInt16>(nMemberPos)]; + const ScDPDataMember* pDataMember = maMembers[static_cast<sal_uInt16>(nMemberPos)].get(); pDataMember->FillDataRow(pRefMember, rFilterCxt, rSequence, nMemberMeasure, bIsSubTotalRow, rSubState); } } @@ -3661,7 +3660,7 @@ void ScDPDataDimension::UpdateDataRow( const ScDPResultDimension* pRefDim, // Calculate must be called even if the member is not visible (for use as reference value) const ScDPResultMember* pRefMember = pRefDim->GetMember(nMemberPos); - ScDPDataMember* pDataMember = maMembers[static_cast<sal_uInt16>(nMemberPos)]; + ScDPDataMember* pDataMember = maMembers[static_cast<sal_uInt16>(nMemberPos)].get(); pDataMember->UpdateDataRow( pRefMember, nMemberMeasure, bIsSubTotalRow, rSubState ); } } @@ -3696,7 +3695,7 @@ void ScDPDataDimension::SortMembers( ScDPResultDimension* pRefDim ) ScDPResultMember* pRefMember = pRefDim->GetMember(i); if ( pRefMember->IsVisible() ) //TODO: here or in ScDPDataMember ??? { - ScDPDataMember* pDataMember = maMembers[static_cast<sal_uInt16>(i)]; + ScDPDataMember* pDataMember = maMembers[static_cast<sal_uInt16>(i)].get(); pDataMember->SortMembers( pRefMember ); } } @@ -3718,7 +3717,7 @@ void ScDPDataDimension::DoAutoShow( ScDPResultDimension* pRefDim ) ScDPResultMember* pRefMember = pRefDim->GetMember(i); if ( pRefMember->IsVisible() ) //TODO: here or in ScDPDataMember ??? { - ScDPDataMember* pDataMember = maMembers[i]; + ScDPDataMember* pDataMember = maMembers[i].get(); pDataMember->DoAutoShow( pRefMember ); } } @@ -3739,7 +3738,7 @@ void ScDPDataDimension::DoAutoShow( ScDPResultDimension* pRefDim ) // look for equal values to the last included one long nIncluded = pRefDim->GetAutoCount(); - ScDPDataMember* pDataMember1 = maMembers[aAutoOrder[nIncluded - 1]]; + ScDPDataMember* pDataMember1 = maMembers[aAutoOrder[nIncluded - 1]].get(); if ( !pDataMember1->IsVisible() ) pDataMember1 = nullptr; bool bContinue = true; @@ -3748,7 +3747,7 @@ void ScDPDataDimension::DoAutoShow( ScDPResultDimension* pRefDim ) bContinue = false; if ( nIncluded < nCount ) { - ScDPDataMember* pDataMember2 = maMembers[aAutoOrder[nIncluded]]; + ScDPDataMember* pDataMember2 = maMembers[aAutoOrder[nIncluded]].get(); if ( !pDataMember2->IsVisible() ) pDataMember2 = nullptr; @@ -3778,7 +3777,7 @@ void ScDPDataDimension::ResetResults() // sort order doesn't matter long nMemberPos = bIsDataLayout ? 0 : i; - ScDPDataMember* pDataMember = maMembers[nMemberPos]; + ScDPDataMember* pDataMember = maMembers[nMemberPos].get(); pDataMember->ResetResults(); } } @@ -3824,7 +3823,7 @@ void ScDPDataDimension::UpdateRunningTotals( const ScDPResultDimension* pRefDim, else rRunning.AddColIndex( i, nSorted ); - ScDPDataMember* pDataMember = maMembers[nMemberPos]; + ScDPDataMember* pDataMember = maMembers[nMemberPos].get(); pDataMember->UpdateRunningTotals( pRefMember, nMemberMeasure, bIsSubTotalRow, rSubState, rRunning, rTotals, rRowParent); @@ -3845,7 +3844,7 @@ void ScDPDataDimension::DumpState( const ScDPResultDimension* pRefDim, ScDocumen for (long i=0; i<nCount; i++) { const ScDPResultMember* pRefMember = pRefDim->GetMember(i); - const ScDPDataMember* pDataMember = maMembers[i]; + const ScDPDataMember* pDataMember = maMembers[i].get(); pDataMember->DumpState( pRefMember, pDoc, rPos ); } @@ -3857,7 +3856,7 @@ void ScDPDataDimension::Dump(int nIndent) const std::string aIndent(nIndent*2, ' '); std::cout << aIndent << "-- data dimension '" << (pResultDimension ? pResultDimension->GetName() : OUString()) << "'" << std::endl; - ScDPDataMembers::const_iterator it = maMembers.begin(), itEnd = maMembers.end(); + auto it = maMembers.begin(), itEnd = maMembers.end(); for (; it != itEnd; ++it) (*it)->Dump(nIndent+1); } @@ -3870,12 +3869,12 @@ long ScDPDataDimension::GetMemberCount() const const ScDPDataMember* ScDPDataDimension::GetMember(long n) const { - return maMembers[n]; + return maMembers[n].get(); } ScDPDataMember* ScDPDataDimension::GetMember(long n) { - return maMembers[n]; + return maMembers[n].get(); } ScDPResultVisibilityData::ScDPResultVisibilityData( _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits