[Libreoffice-commits] core.git: sc/inc sc/source
Noel Grandin
noel.grandin at collabora.co.uk
Wed Jun 27 09:37:25 UTC 2018
sc/inc/consoli.hxx | 12 +++----
sc/source/core/tool/consoli.cxx | 66 ++++++++++++----------------------------
2 files changed, 26 insertions(+), 52 deletions(-)
New commits:
commit a98030518682042efaf0d3b603366435edb9e633
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date: Tue Jun 26 14:53:45 2018 +0200
loplugin:useuniqueptr in ScConsData
Change-Id: I0f9392d95ec2887ee62d1486f63600693a8b4dca
Reviewed-on: https://gerrit.libreoffice.org/56497
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>
diff --git a/sc/inc/consoli.hxx b/sc/inc/consoli.hxx
index d16a082ce578..a2023a62a7d0 100644
--- a/sc/inc/consoli.hxx
+++ b/sc/inc/consoli.hxx
@@ -53,16 +53,16 @@ private:
bool bRowByName;
SCSIZE nColCount;
SCSIZE nRowCount;
- bool** ppUsed;
- double** ppSum;
- double** ppCount;
- double** ppSumSqr;
- ScReferenceList** ppRefs;
+ std::unique_ptr<std::unique_ptr<bool[]>[]> ppUsed;
+ std::unique_ptr<std::unique_ptr<double[]>[]> ppSum;
+ std::unique_ptr<std::unique_ptr<double[]>[]> ppCount;
+ std::unique_ptr<std::unique_ptr<double[]>[]> ppSumSqr;
+ std::unique_ptr<std::unique_ptr<ScReferenceList[]>[]> ppRefs;
::std::vector<OUString> maColHeaders;
::std::vector<OUString> maRowHeaders;
::std::vector<OUString> maTitles;
SCSIZE nDataCount;
- SCSIZE** ppTitlePos;
+ std::unique_ptr<std::unique_ptr<SCSIZE[]>[]> ppTitlePos;
bool bCornerUsed;
OUString aCornerText; // only for bColByName && bRowByName
diff --git a/sc/source/core/tool/consoli.cxx b/sc/source/core/tool/consoli.cxx
index dc085b19882f..1c76ed39b342 100644
--- a/sc/source/core/tool/consoli.cxx
+++ b/sc/source/core/tool/consoli.cxx
@@ -61,49 +61,23 @@ ScConsData::ScConsData() :
bRowByName(false),
nColCount(0),
nRowCount(0),
- ppUsed(nullptr),
- ppSum(nullptr),
- ppCount(nullptr),
- ppSumSqr(nullptr),
- ppRefs(nullptr),
nDataCount(0),
- ppTitlePos(nullptr),
bCornerUsed(false)
{
}
ScConsData::~ScConsData()
{
- DeleteData();
-}
-
-#define DELETEARR(ppArray,nCount) \
-{ \
- sal_uLong i; \
- if (ppArray) \
- for(i=0; i<nCount; i++) \
- delete[] ppArray[i]; \
- delete[] ppArray; \
- ppArray = nullptr; \
}
void ScConsData::DeleteData()
{
- if (ppRefs)
- {
- for (SCSIZE i=0; i<nColCount; i++)
- {
- delete[] ppRefs[i];
- }
- delete[] ppRefs;
- ppRefs = nullptr;
- }
-
- DELETEARR( ppCount, nColCount );
- DELETEARR( ppSum, nColCount );
- DELETEARR( ppSumSqr,nColCount );
- DELETEARR( ppUsed, nColCount );
- DELETEARR( ppTitlePos, nRowCount );
+ ppRefs.reset();
+ ppCount.reset();
+ ppSum.reset();
+ ppSumSqr.reset();
+ ppUsed.reset();
+ ppTitlePos.reset();
::std::vector<OUString>().swap( maColHeaders);
::std::vector<OUString>().swap( maRowHeaders);
::std::vector<OUString>().swap( maTitles);
@@ -123,40 +97,40 @@ void ScConsData::InitData()
{
if (bReference && nColCount && !ppRefs)
{
- ppRefs = new ScReferenceList*[nColCount];
+ ppRefs.reset(new std::unique_ptr<ScReferenceList[]>[nColCount]);
for (SCSIZE i=0; i<nColCount; i++)
- ppRefs[i] = new ScReferenceList[nRowCount];
+ ppRefs[i].reset(new ScReferenceList[nRowCount]);
}
else if (nColCount && !ppCount)
{
- ppCount = new double*[nColCount];
- ppSum = new double*[nColCount];
- ppSumSqr = new double*[nColCount];
+ ppCount.reset( new std::unique_ptr<double[]>[nColCount] );
+ ppSum.reset( new std::unique_ptr<double[]>[nColCount] );
+ ppSumSqr.reset( new std::unique_ptr<double[]>[nColCount] );
for (SCSIZE i=0; i<nColCount; i++)
{
- ppCount[i] = new double[nRowCount];
- ppSum[i] = new double[nRowCount];
- ppSumSqr[i] = new double[nRowCount];
+ ppCount[i].reset( new double[nRowCount] );
+ ppSum[i].reset( new double[nRowCount] );
+ ppSumSqr[i].reset( new double[nRowCount] );
}
}
if (nColCount && !ppUsed)
{
- ppUsed = new bool*[nColCount];
+ ppUsed.reset( new std::unique_ptr<bool[]>[nColCount] );
for (SCSIZE i=0; i<nColCount; i++)
{
- ppUsed[i] = new bool[nRowCount];
- memset( ppUsed[i], 0, nRowCount * sizeof(bool) );
+ ppUsed[i].reset( new bool[nRowCount] );
+ memset( ppUsed[i].get(), 0, nRowCount * sizeof(bool) );
}
}
if (nRowCount && nDataCount && !ppTitlePos)
{
- ppTitlePos = new SCSIZE*[nRowCount];
+ ppTitlePos.reset( new std::unique_ptr<SCSIZE[]>[nRowCount] );
for (SCSIZE i=0; i<nRowCount; i++)
{
- ppTitlePos[i] = new SCSIZE[nDataCount];
- memset( ppTitlePos[i], 0, nDataCount * sizeof(SCSIZE) ); //TODO: not necessary ?
+ ppTitlePos[i].reset( new SCSIZE[nDataCount] );
+ memset( ppTitlePos[i].get(), 0, nDataCount * sizeof(SCSIZE) ); //TODO: not necessary ?
}
}
More information about the Libreoffice-commits
mailing list