Kaydet (Commit) 7ebb5722 authored tarafından Noel Grandin's avatar Noel Grandin

loplugin:useuniqueptr in FormulaTokenArray

Change-Id: I5716295d2f0c88c6daf0570941d5dd4c5ff03a33
Reviewed-on: https://gerrit.libreoffice.org/54168Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarNoel Grandin <noel.grandin@collabora.co.uk>
üst 38fa68b9
......@@ -605,8 +605,9 @@ void FormulaTokenArray::Assign( const FormulaTokenArray& r )
FormulaToken** pp;
if( nLen )
{
pp = pCode = new FormulaToken*[ nLen ];
memcpy( pp, r.pCode, nLen * sizeof( FormulaToken* ) );
pCode.reset(new FormulaToken*[ nLen ]);
pp = pCode.get();
memcpy( pp, r.pCode.get(), nLen * sizeof( FormulaToken* ) );
for( sal_uInt16 i = 0; i < nLen; i++ )
(*pp++)->IncRef();
mbFinalized = true;
......@@ -627,7 +628,7 @@ void FormulaTokenArray::Assign( sal_uInt16 nCode, FormulaToken **pTokens )
assert( pCode == nullptr );
nLen = nCode;
pCode = new FormulaToken*[ nLen ];
pCode.reset(new FormulaToken*[ nLen ]);
mbFinalized = true;
for( sal_uInt16 i = 0; i < nLen; i++ )
......@@ -651,14 +652,14 @@ void FormulaTokenArray::Clear()
if( nRPN ) DelRPN();
if( pCode )
{
FormulaToken** p = pCode;
FormulaToken** p = pCode.get();
for( sal_uInt16 i = 0; i < nLen; i++ )
{
(*p++)->DecRef();
}
delete [] pCode;
pCode.reset();
}
pCode = nullptr; pRPN = nullptr;
pRPN = nullptr;
nError = FormulaError::NONE;
nLen = nRPN = 0;
bHyperLink = false;
......@@ -775,7 +776,7 @@ FormulaToken* FormulaTokenArray::Add( FormulaToken* t )
}
if( !pCode )
pCode = new FormulaToken*[ FORMULA_MAXTOKENS ];
pCode.reset(new FormulaToken*[ FORMULA_MAXTOKENS ]);
if( nLen < FORMULA_MAXTOKENS - 1 )
{
CheckToken(*t);
......
......@@ -230,7 +230,7 @@ public:
class FORMULA_DLLPUBLIC FormulaTokenArray
{
protected:
FormulaToken** pCode; // Token code array
std::unique_ptr<FormulaToken*[]> pCode; // Token code array
FormulaToken** pRPN; // RPN array
sal_uInt16 nLen; // Length of token array
sal_uInt16 nRPN; // Length of RPN array
......@@ -363,11 +363,11 @@ public:
memcpy( pRPN, pData, nSize * sizeof( FormulaToken* ) );
}
FormulaToken** GetArray() const { return pCode; }
FormulaToken** GetArray() const { return pCode.get(); }
FormulaTokenArrayStandardRange Tokens() const
{
return FormulaTokenArrayStandardRange(pCode, nLen);
return FormulaTokenArrayStandardRange(pCode.get(), nLen);
}
FormulaToken** GetCode() const { return pRPN; }
......
......@@ -1839,7 +1839,7 @@ bool ScTokenArray::IsFormulaVectorDisabled() const
bool ScTokenArray::IsInvariant() const
{
FormulaToken** p = pCode;
FormulaToken** p = pCode.get();
FormulaToken** pEnd = p + static_cast<size_t>(nLen);
for (; p != pEnd; ++p)
{
......@@ -1949,8 +1949,9 @@ ScTokenArray* ScTokenArray::Clone() const
FormulaToken** pp;
if( nLen )
{
pp = p->pCode = new FormulaToken*[ nLen ];
memcpy( pp, pCode, nLen * sizeof( formula::FormulaToken* ) );
p->pCode.reset(new FormulaToken*[ nLen ]);
pp = p->pCode.get();
memcpy( pp, pCode.get(), nLen * sizeof( formula::FormulaToken* ) );
for( sal_uInt16 i = 0; i < nLen; i++, pp++ )
{
*pp = (*pp)->Clone();
......@@ -1966,7 +1967,7 @@ ScTokenArray* ScTokenArray::Clone() const
FormulaToken* t = *pp;
if( t->GetRef() > 1 )
{
FormulaToken** p2 = pCode;
FormulaToken** p2 = pCode.get();
sal_uInt16 nIdx = 0xFFFF;
for( sal_uInt16 j = 0; j < nLen; j++, p2++ )
{
......@@ -2536,7 +2537,7 @@ void ScTokenArray::ReadjustAbsolute3DReferences( const ScDocument* pOldDoc, ScDo
void ScTokenArray::AdjustAbsoluteRefs( const ScDocument* pOldDoc, const ScAddress& rOldPos, const ScAddress& rNewPos,
bool bCheckCopyRange)
{
TokenPointers aPtrs( pCode, nLen, pRPN, nRPN, true);
TokenPointers aPtrs( pCode.get(), nLen, pRPN, nRPN, true);
for (size_t j=0; j<2; ++j)
{
FormulaToken** pp = aPtrs.maPointerRange[j].mpStart;
......@@ -2583,7 +2584,7 @@ void ScTokenArray::AdjustAbsoluteRefs( const ScDocument* pOldDoc, const ScAddres
void ScTokenArray::AdjustSheetLocalNameReferences( SCTAB nOldTab, SCTAB nNewTab )
{
TokenPointers aPtrs( pCode, nLen, pRPN, nRPN, false);
TokenPointers aPtrs( pCode.get(), nLen, pRPN, nRPN, false);
for (size_t j=0; j<2; ++j)
{
FormulaToken** pp = aPtrs.maPointerRange[j].mpStart;
......@@ -2631,7 +2632,7 @@ void ScTokenArray::AdjustSheetLocalNameReferences( SCTAB nOldTab, SCTAB nNewTab
bool ScTokenArray::ReferencesSheet( SCTAB nTab, SCTAB nPosTab ) const
{
TokenPointers aPtrs( pCode, nLen, pRPN, nRPN, false);
TokenPointers aPtrs( pCode.get(), nLen, pRPN, nRPN, false);
for (size_t j=0; j<2; ++j)
{
FormulaToken* const * pp = aPtrs.maPointerRange[j].mpStart;
......@@ -3082,7 +3083,7 @@ sc::RefUpdateResult ScTokenArray::AdjustReferenceOnShift( const sc::RefUpdateCon
}
}
TokenPointers aPtrs( pCode, nLen, pRPN, nRPN);
TokenPointers aPtrs( pCode.get(), nLen, pRPN, nRPN);
for (size_t j=0; j<2; ++j)
{
FormulaToken** pp = aPtrs.maPointerRange[j].mpStart;
......@@ -3314,7 +3315,7 @@ sc::RefUpdateResult ScTokenArray::AdjustReferenceOnMove(
assert(!"can't move");
}
TokenPointers aPtrs( pCode, nLen, pRPN, nRPN);
TokenPointers aPtrs( pCode.get(), nLen, pRPN, nRPN);
for (size_t j=0; j<2; ++j)
{
FormulaToken** pp = aPtrs.maPointerRange[j].mpStart;
......@@ -3437,7 +3438,7 @@ sc::RefUpdateResult ScTokenArray::MoveReference( const ScAddress& rPos, const sc
assert(!"can't move");
}
FormulaToken** p = pCode;
FormulaToken** p = pCode.get();
FormulaToken** pEnd = p + static_cast<size_t>(nLen);
for (; p != pEnd; ++p)
{
......@@ -3513,7 +3514,7 @@ sc::RefUpdateResult ScTokenArray::MoveReference( const ScAddress& rPos, const sc
void ScTokenArray::MoveReferenceColReorder(
const ScAddress& rPos, SCTAB nTab, SCROW nRow1, SCROW nRow2, const sc::ColRowReorderMapType& rColMap )
{
FormulaToken** p = pCode;
FormulaToken** p = pCode.get();
FormulaToken** pEnd = p + static_cast<size_t>(nLen);
for (; p != pEnd; ++p)
{
......@@ -3576,7 +3577,7 @@ void ScTokenArray::MoveReferenceColReorder(
void ScTokenArray::MoveReferenceRowReorder( const ScAddress& rPos, SCTAB nTab, SCCOL nCol1, SCCOL nCol2, const sc::ColRowReorderMapType& rRowMap )
{
FormulaToken** p = pCode;
FormulaToken** p = pCode.get();
FormulaToken** pEnd = p + static_cast<size_t>(nLen);
for (; p != pEnd; ++p)
{
......@@ -3796,7 +3797,7 @@ sc::RefUpdateResult ScTokenArray::AdjustReferenceInName(
// Copying cells does not modify named expressions.
return aRes;
TokenPointers aPtrs( pCode, nLen, pRPN, nRPN);
TokenPointers aPtrs( pCode.get(), nLen, pRPN, nRPN);
for (size_t j=0; j<2; ++j)
{
FormulaToken** pp = aPtrs.maPointerRange[j].mpStart;
......@@ -4074,7 +4075,7 @@ sc::RefUpdateResult ScTokenArray::AdjustReferenceInMovedName( const sc::RefUpdat
sc::RefUpdateResult aRes;
TokenPointers aPtrs( pCode, nLen, pRPN, nRPN);
TokenPointers aPtrs( pCode.get(), nLen, pRPN, nRPN);
for (size_t j=0; j<2; ++j)
{
FormulaToken** pp = aPtrs.maPointerRange[j].mpStart;
......@@ -4226,7 +4227,7 @@ sc::RefUpdateResult ScTokenArray::AdjustReferenceOnDeletedTab( const sc::RefUpda
if (rCxt.mnDeletePos < rOldPos.Tab())
aNewPos.IncTab(-1*rCxt.mnSheets);
TokenPointers aPtrs( pCode, nLen, pRPN, nRPN);
TokenPointers aPtrs( pCode.get(), nLen, pRPN, nRPN);
for (size_t j=0; j<2; ++j)
{
FormulaToken** pp = aPtrs.maPointerRange[j].mpStart;
......@@ -4299,7 +4300,7 @@ sc::RefUpdateResult ScTokenArray::AdjustReferenceOnInsertedTab( const sc::RefUpd
if (rCxt.mnInsertPos <= rOldPos.Tab())
aNewPos.IncTab(rCxt.mnSheets);
TokenPointers aPtrs( pCode, nLen, pRPN, nRPN);
TokenPointers aPtrs( pCode.get(), nLen, pRPN, nRPN);
for (size_t j=0; j<2; ++j)
{
FormulaToken** pp = aPtrs.maPointerRange[j].mpStart;
......@@ -4388,7 +4389,7 @@ sc::RefUpdateResult ScTokenArray::AdjustReferenceOnMovedTab( const sc::RefUpdate
if (adjustTabOnMove(aNewPos, rCxt))
aRes.mbReferenceModified = true;
TokenPointers aPtrs( pCode, nLen, pRPN, nRPN);
TokenPointers aPtrs( pCode.get(), nLen, pRPN, nRPN);
for (size_t j=0; j<2; ++j)
{
FormulaToken** pp = aPtrs.maPointerRange[j].mpStart;
......@@ -4461,7 +4462,7 @@ sc::RefUpdateResult ScTokenArray::AdjustReferenceOnMovedTab( const sc::RefUpdate
void ScTokenArray::AdjustReferenceOnMovedOrigin( const ScAddress& rOldPos, const ScAddress& rNewPos )
{
TokenPointers aPtrs( pCode, nLen, pRPN, nRPN);
TokenPointers aPtrs( pCode.get(), nLen, pRPN, nRPN);
for (size_t j=0; j<2; ++j)
{
FormulaToken** pp = aPtrs.maPointerRange[j].mpStart;
......@@ -4499,7 +4500,7 @@ void ScTokenArray::AdjustReferenceOnMovedOrigin( const ScAddress& rOldPos, const
void ScTokenArray::AdjustReferenceOnMovedOriginIfOtherSheet( const ScAddress& rOldPos, const ScAddress& rNewPos )
{
TokenPointers aPtrs( pCode, nLen, pRPN, nRPN);
TokenPointers aPtrs( pCode.get(), nLen, pRPN, nRPN);
for (size_t j=0; j<2; ++j)
{
FormulaToken** pp = aPtrs.maPointerRange[j].mpStart;
......@@ -4548,7 +4549,7 @@ void ScTokenArray::AdjustReferenceOnMovedOriginIfOtherSheet( const ScAddress& rO
void ScTokenArray::AdjustReferenceOnCopy( const ScAddress& rNewPos )
{
TokenPointers aPtrs( pCode, nLen, pRPN, nRPN, false);
TokenPointers aPtrs( pCode.get(), nLen, pRPN, nRPN, false);
for (size_t j=0; j<2; ++j)
{
FormulaToken** pp = aPtrs.maPointerRange[j].mpStart;
......@@ -4593,7 +4594,7 @@ void ScTokenArray::ClearTabDeleted( const ScAddress& rPos, SCTAB nStartTab, SCTA
if (nEndTab < nStartTab)
return;
FormulaToken** p = pCode;
FormulaToken** p = pCode.get();
FormulaToken** pEnd = p + static_cast<size_t>(nLen);
for (; p != pEnd; ++p)
{
......@@ -4729,7 +4730,7 @@ void checkBounds(
void ScTokenArray::CheckRelativeReferenceBounds(
const sc::RefUpdateContext& rCxt, const ScAddress& rPos, SCROW nGroupLen, std::vector<SCROW>& rBounds ) const
{
TokenPointers aPtrs( pCode, nLen, pRPN, nRPN);
TokenPointers aPtrs( pCode.get(), nLen, pRPN, nRPN);
for (size_t j=0; j<2; ++j)
{
FormulaToken** pp = aPtrs.maPointerRange[j].mpStart;
......@@ -4764,7 +4765,7 @@ void ScTokenArray::CheckRelativeReferenceBounds(
void ScTokenArray::CheckRelativeReferenceBounds(
const ScAddress& rPos, SCROW nGroupLen, const ScRange& rRange, std::vector<SCROW>& rBounds ) const
{
TokenPointers aPtrs( pCode, nLen, pRPN, nRPN);
TokenPointers aPtrs( pCode.get(), nLen, pRPN, nRPN);
for (size_t j=0; j<2; ++j)
{
FormulaToken** pp = aPtrs.maPointerRange[j].mpStart;
......@@ -4801,7 +4802,7 @@ void ScTokenArray::CheckExpandReferenceBounds(
const sc::RefUpdateContext& rCxt, const ScAddress& rPos, SCROW nGroupLen, std::vector<SCROW>& rBounds ) const
{
const SCROW nInsRow = rCxt.maRange.aStart.Row();
TokenPointers aPtrs( pCode, nLen, pRPN, nRPN);
TokenPointers aPtrs( pCode.get(), nLen, pRPN, nRPN);
for (size_t j=0; j<2; ++j)
{
FormulaToken* const * pp = aPtrs.maPointerRange[j].mpStart;
......@@ -5208,7 +5209,7 @@ OUString ScTokenArray::CreateString( sc::TokenStringContext& rCxt, const ScAddre
OUStringBuffer aBuf;
FormulaToken** p = pCode;
FormulaToken** p = pCode.get();
FormulaToken** pEnd = p + static_cast<size_t>(nLen);
for (; p != pEnd; ++p)
{
......@@ -5275,7 +5276,7 @@ void wrapRowRange( ScRange& rRange, SCROW nMaxRow )
void ScTokenArray::WrapReference( const ScAddress& rPos, SCCOL nMaxCol, SCROW nMaxRow )
{
FormulaToken** p = pCode;
FormulaToken** p = pCode.get();
FormulaToken** pEnd = p + static_cast<size_t>(nLen);
for (; p != pEnd; ++p)
{
......@@ -5318,7 +5319,7 @@ void ScTokenArray::WrapReference( const ScAddress& rPos, SCCOL nMaxCol, SCROW nM
bool ScTokenArray::NeedsWrapReference( const ScAddress& rPos, SCCOL nMaxCol, SCROW nMaxRow ) const
{
FormulaToken** p = pCode;
FormulaToken** p = pCode.get();
FormulaToken** pEnd = p + static_cast<size_t>(nLen);
for (; p != pEnd; ++p)
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment