[Libreoffice-commits] core.git: 2 commits - sc/inc sc/source
Noel Grandin
noel.grandin at collabora.co.uk
Wed Apr 4 06:30:14 UTC 2018
sc/inc/queryentry.hxx | 4 ++--
sc/source/core/inc/jumpmatrix.hxx | 6 +++---
sc/source/core/tool/interpr1.cxx | 15 ++++++---------
sc/source/core/tool/interpr4.cxx | 6 +++---
sc/source/core/tool/jumpmatrix.cxx | 17 ++++-------------
sc/source/core/tool/queryentry.cxx | 22 ++++++++--------------
6 files changed, 26 insertions(+), 44 deletions(-)
New commits:
commit 9d037cb837d74708358168333a0b457952de23a6
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date: Tue Apr 3 14:05:20 2018 +0200
loplugin:useuniqueptr in ScJumpMatrix
Change-Id: Ia8461773bdb2290690616b291356edd3a9ea4f35
Reviewed-on: https://gerrit.libreoffice.org/52341
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>
diff --git a/sc/source/core/inc/jumpmatrix.hxx b/sc/source/core/inc/jumpmatrix.hxx
index 084f5a91f4bb..c4a0b5784896 100644
--- a/sc/source/core/inc/jumpmatrix.hxx
+++ b/sc/source/core/inc/jumpmatrix.hxx
@@ -60,7 +60,7 @@ class ScJumpMatrix
std::vector<ScJumpMatrixEntry> mvJump; // the jumps
ScMatrixRef pMat; // the results
ScRefList mvRefList; // array of references result, if any
- ScTokenVec* pParams; // parameter stack
+ ScTokenVec mvParams; // parameter stack
SCSIZE nCols;
SCSIZE nRows;
SCSIZE nCurCol;
@@ -103,8 +103,8 @@ public:
void SetJump( SCSIZE nCol, SCSIZE nRow, double fBool, short nStart, short nNext );
void GetJump( SCSIZE nCol, SCSIZE nRow, double& rBool, short& rStart, short& rNext, short& rStop ) const;
void SetAllJumps( double fBool, short nStart, short nNext, short nStop = SHRT_MAX );
- void SetJumpParameters( ScTokenVec* p );
- const ScTokenVec* GetJumpParameters() const { return pParams;}
+ void SetJumpParameters( ScTokenVec&& p );
+ const ScTokenVec & GetJumpParameters() const { return mvParams;}
bool HasResultMatrix() const;
ScMatrix* GetResultMatrix(); ///< also applies pending buffered values
void GetPos( SCSIZE& rCol, SCSIZE& rRow ) const;
diff --git a/sc/source/core/tool/interpr1.cxx b/sc/source/core/tool/interpr1.cxx
index 06fc60b8a18e..51a2a422abfc 100644
--- a/sc/source/core/tool/interpr1.cxx
+++ b/sc/source/core/tool/interpr1.cxx
@@ -786,16 +786,13 @@ bool ScInterpreter::JumpMatrix( short nStackLevel )
}
if ( bCont && nStart != nNext )
{
- const ScTokenVec* pParams = pJumpMatrix->GetJumpParameters();
- if ( pParams )
+ const ScTokenVec & rParams = pJumpMatrix->GetJumpParameters();
+ for ( auto const & i : rParams )
{
- for ( ScTokenVec::const_iterator i = pParams->begin(); i != pParams->end(); ++i )
- {
- // This is not the current state of the interpreter, so
- // push without error, and elements' errors are coded into
- // double.
- PushWithoutError( *(*i));
- }
+ // This is not the current state of the interpreter, so
+ // push without error, and elements' errors are coded into
+ // double.
+ PushWithoutError(*i);
}
aCode.Jump( nStart, nNext, nStop );
}
diff --git a/sc/source/core/tool/interpr4.cxx b/sc/source/core/tool/interpr4.cxx
index e631ffaf9139..d28d8138a88a 100644
--- a/sc/source/core/tool/interpr4.cxx
+++ b/sc/source/core/tool/interpr4.cxx
@@ -1576,15 +1576,15 @@ bool ScInterpreter::ConvertMatrixParameters()
std::unique_ptr<ScJumpMatrix> pJumpMat( new ScJumpMatrix( pCur->GetOpCode(), nJumpCols, nJumpRows));
pJumpMat->SetAllJumps( 1.0, nStart, nNext, nStop);
// pop parameters and store in ScJumpMatrix, push in JumpMatrix()
- ScTokenVec* pParams = new ScTokenVec( nParams);
+ ScTokenVec aParams(nParams);
for ( sal_uInt16 i=1; i <= nParams && sp > 0; ++i )
{
const FormulaToken* p = pStack[ --sp ];
p->IncRef();
// store in reverse order such that a push may simply iterate
- (*pParams)[ nParams - i ] = p;
+ aParams[ nParams - i ] = p;
}
- pJumpMat->SetJumpParameters( pParams);
+ pJumpMat->SetJumpParameters( std::move(aParams) );
xNew = new ScJumpMatrixToken( std::move(pJumpMat) );
GetTokenMatrixMap().emplace(pCur, xNew);
}
diff --git a/sc/source/core/tool/jumpmatrix.cxx b/sc/source/core/tool/jumpmatrix.cxx
index ed71c69c1a20..c3153fd5ac3e 100644
--- a/sc/source/core/tool/jumpmatrix.cxx
+++ b/sc/source/core/tool/jumpmatrix.cxx
@@ -30,7 +30,6 @@ const SCSIZE kBufferThreshold = 128;
ScJumpMatrix::ScJumpMatrix( OpCode eOp, SCSIZE nColsP, SCSIZE nRowsP )
: mvJump(nColsP * nRowsP)
, pMat(new ScFullMatrix(nColsP, nRowsP))
- , pParams(nullptr)
, nCols(nColsP)
, nRows(nRowsP)
, nCurCol(0)
@@ -53,16 +52,8 @@ ScJumpMatrix::ScJumpMatrix( OpCode eOp, SCSIZE nColsP, SCSIZE nRowsP )
ScJumpMatrix::~ScJumpMatrix()
{
- if (pParams)
- {
- for (ScTokenVec::iterator i =
- pParams->begin(); i !=
- pParams->end(); ++i)
- {
- (*i)->DecRef();
- }
- delete pParams;
- }
+ for (auto & i : mvParams)
+ i->DecRef();
}
void ScJumpMatrix::GetDimensions(SCSIZE& rCols, SCSIZE& rRows) const
@@ -107,9 +98,9 @@ void ScJumpMatrix::SetAllJumps(double fBool, short nStart, short nNext, short nS
}
}
-void ScJumpMatrix::SetJumpParameters(ScTokenVec* p)
+void ScJumpMatrix::SetJumpParameters(ScTokenVec&& p)
{
- pParams = p;
+ mvParams = std::move(p);
}
void ScJumpMatrix::GetPos(SCSIZE& rCol, SCSIZE& rRow) const
commit b7f6dc5957ac615f38b26d6e0147306cac1c3d7b
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date: Tue Apr 3 12:55:24 2018 +0200
loplugin:useuniqueptr in ScQueryEntry
Change-Id: Ifcae24f5446410ae56d1a767953939e73ff5d72d
Reviewed-on: https://gerrit.libreoffice.org/52340
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>
diff --git a/sc/inc/queryentry.hxx b/sc/inc/queryentry.hxx
index ab1a36fc5d9e..fc08c58b7a49 100644
--- a/sc/inc/queryentry.hxx
+++ b/sc/inc/queryentry.hxx
@@ -51,8 +51,8 @@ struct SC_DLLPUBLIC ScQueryEntry
SCCOLROW nField;
ScQueryOp eOp;
ScQueryConnect eConnect;
- mutable utl::SearchParam* pSearchParam; ///< if Wildcard or RegExp, not saved
- mutable utl::TextSearch* pSearchText; ///< if Wildcard or RegExp, not saved
+ mutable std::unique_ptr<utl::SearchParam> pSearchParam; ///< if Wildcard or RegExp, not saved
+ mutable std::unique_ptr<utl::TextSearch> pSearchText; ///< if Wildcard or RegExp, not saved
ScQueryEntry();
ScQueryEntry(const ScQueryEntry& r);
diff --git a/sc/source/core/tool/queryentry.cxx b/sc/source/core/tool/queryentry.cxx
index e794532b285a..f08783927fc8 100644
--- a/sc/source/core/tool/queryentry.cxx
+++ b/sc/source/core/tool/queryentry.cxx
@@ -59,8 +59,6 @@ ScQueryEntry::ScQueryEntry(const ScQueryEntry& r) :
ScQueryEntry::~ScQueryEntry()
{
- delete pSearchParam;
- delete pSearchText;
}
ScQueryEntry& ScQueryEntry::operator=( const ScQueryEntry& r )
@@ -71,10 +69,8 @@ ScQueryEntry& ScQueryEntry::operator=( const ScQueryEntry& r )
nField = r.nField;
maQueryItems = r.maQueryItems;
- delete pSearchParam;
- delete pSearchText;
- pSearchParam = nullptr;
- pSearchText = nullptr;
+ pSearchParam.reset();
+ pSearchText.reset();
return *this;
}
@@ -148,10 +144,8 @@ void ScQueryEntry::Clear()
maQueryItems.clear();
maQueryItems.emplace_back();
- delete pSearchParam;
- delete pSearchText;
- pSearchParam = nullptr;
- pSearchText = nullptr;
+ pSearchParam.reset();
+ pSearchText.reset();
}
bool ScQueryEntry::operator==( const ScQueryEntry& r ) const
@@ -170,11 +164,11 @@ utl::TextSearch* ScQueryEntry::GetSearchTextPtr( utl::SearchParam::SearchType eS
if ( !pSearchParam )
{
OUString aStr = maQueryItems[0].maString.getString();
- pSearchParam = new utl::SearchParam(
- aStr, eSearchType, bCaseSens, '~', bWildMatchSel);
- pSearchText = new utl::TextSearch( *pSearchParam, *ScGlobal::pCharClass );
+ pSearchParam.reset(new utl::SearchParam(
+ aStr, eSearchType, bCaseSens, '~', bWildMatchSel));
+ pSearchText.reset(new utl::TextSearch( *pSearchParam, *ScGlobal::pCharClass ));
}
- return pSearchText;
+ return pSearchText.get();
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
More information about the Libreoffice-commits
mailing list