summaryrefslogtreecommitdiff
path: root/formula
diff options
context:
space:
mode:
authorTor Lillqvist <tml@collabora.com>2017-06-19 11:37:43 +0300
committerTor Lillqvist <tml@collabora.com>2017-06-19 12:23:24 +0300
commitc3fae6be6067572aaf9f0c72ad35b69019a79135 (patch)
treedab6a4ac276daa0fcc54d09b36f42323376c56eb /formula
parentcfd5d203e9c641c150f92c2b1ee5b84e89e6dc99 (diff)
Add yet another kind of iterator for the two arrays in FormulaTokenArray
This one has no extra functionality at all, and its only purpose is to be used in range-based for loops. If there is a cleaner way to do this, feel free. Not sure if this functionality could or should be combined with either of the two existing iterator classes related to FormulaTokenArray (FormulaTokenIterator and FormulaTokenArrayPlainIterator). Probably not. Change-Id: I32599b0800fd2585624d3742a46ad4896ce7e47a
Diffstat (limited to 'formula')
-rw-r--r--formula/source/core/api/token.cxx48
1 files changed, 22 insertions, 26 deletions
diff --git a/formula/source/core/api/token.cxx b/formula/source/core/api/token.cxx
index 2cd4b63f92a4..bb634fcdfa46 100644
--- a/formula/source/core/api/token.cxx
+++ b/formula/source/core/api/token.cxx
@@ -495,15 +495,15 @@ FormulaToken* FormulaTokenArray::FirstRPNToken() const
bool FormulaTokenArray::HasReferences() const
{
- for (sal_uInt16 i = 0; i < nLen; ++i)
+ for (auto i: Tokens())
{
- if (pCode[i]->IsRef())
+ if (i->IsRef())
return true;
}
- for (sal_uInt16 i = 0; i < nRPN; ++i)
+ for (auto i: RPNTokens())
{
- if (pRPN[i]->IsRef())
+ if (i->IsRef())
return true;
}
@@ -512,9 +512,9 @@ bool FormulaTokenArray::HasReferences() const
bool FormulaTokenArray::HasExternalRef() const
{
- for ( sal_uInt16 j=0; j < nLen; j++ )
+ for (auto i: Tokens())
{
- if (pCode[j]->IsExternalRef())
+ if (i->IsExternalRef())
return true;
}
return false;
@@ -522,9 +522,9 @@ bool FormulaTokenArray::HasExternalRef() const
bool FormulaTokenArray::HasOpCode( OpCode eOp ) const
{
- for ( sal_uInt16 j=0; j < nLen; j++ )
+ for (auto i: Tokens())
{
- if ( pCode[j]->GetOpCode() == eOp )
+ if (i->GetOpCode() == eOp)
return true;
}
return false;
@@ -532,9 +532,9 @@ bool FormulaTokenArray::HasOpCode( OpCode eOp ) const
bool FormulaTokenArray::HasOpCodeRPN( OpCode eOp ) const
{
- for ( sal_uInt16 j=0; j < nRPN; j++ )
+ for (auto i: RPNTokens())
{
- if ( pRPN[j]->GetOpCode() == eOp )
+ if (i->GetOpCode() == eOp)
return true;
}
return false;
@@ -542,9 +542,9 @@ bool FormulaTokenArray::HasOpCodeRPN( OpCode eOp ) const
bool FormulaTokenArray::HasNameOrColRowName() const
{
- for ( sal_uInt16 j=0; j < nLen; j++ )
+ for (auto i: Tokens())
{
- if( pCode[j]->GetType() == svIndex || pCode[j]->GetOpCode() == ocColRowName )
+ if (i->GetType() == svIndex || i->GetOpCode() == ocColRowName )
return true;
}
return false;
@@ -552,12 +552,9 @@ bool FormulaTokenArray::HasNameOrColRowName() const
bool FormulaTokenArray::HasOpCodes(const unordered_opcode_set& rOpCodes) const
{
- FormulaToken** p = pCode;
- FormulaToken** pEnd = p + static_cast<size_t>(nLen);
- for (; p != pEnd; ++p)
+ for (auto i: Tokens())
{
- OpCode eOp = (*p)->GetOpCode();
- if (rOpCodes.count(eOp) > 0)
+ if (rOpCodes.count(i->GetOpCode()) > 0)
return true;
}
@@ -853,9 +850,8 @@ bool FormulaTokenArray::HasMatrixDoubleRefOps()
std::unique_ptr<FormulaToken*[]> pStack(new FormulaToken* [nRPN]);
FormulaToken* pResult = new FormulaDoubleToken( 0.0 );
short sp = 0;
- for ( sal_uInt16 j = 0; j < nRPN; j++ )
+ for ( auto t: RPNTokens() )
{
- FormulaToken* t = pRPN[j];
OpCode eOp = t->GetOpCode();
sal_uInt8 nParams = t->GetParamCount();
switch ( eOp )
@@ -1248,9 +1244,9 @@ bool FormulaMissingContext::AddMissing( FormulaTokenArray *pNewArr, const Missin
bool FormulaTokenArray::NeedsPodfRewrite( const MissingConventionODF & rConv )
{
- for ( int i = 0; i < nLen; ++i )
+ for ( auto i: Tokens() )
{
- if ( rConv.isRewriteNeeded( pCode[i]->GetOpCode()))
+ if ( rConv.isRewriteNeeded( i->GetOpCode()))
return true;
}
return false;
@@ -1258,9 +1254,9 @@ bool FormulaTokenArray::NeedsPodfRewrite( const MissingConventionODF & rConv )
bool FormulaTokenArray::NeedsOoxmlRewrite()
{
- for ( int i = 0; i < nLen; ++i )
+ for ( auto i: Tokens() )
{
- if ( MissingConventionOOXML::isRewriteNeeded( pCode[i]->GetOpCode()))
+ if ( MissingConventionOOXML::isRewriteNeeded( i->GetOpCode()))
return true;
}
return false;
@@ -1484,12 +1480,12 @@ FormulaToken* FormulaTokenArray::AddOpCode( OpCode eOp )
void FormulaTokenArray::ReinternStrings( svl::SharedStringPool& rPool )
{
- for (sal_uInt16 i=0; i < nLen; ++i)
+ for (auto i: Tokens())
{
- switch (pCode[i]->GetType())
+ switch (i->GetType())
{
case svString:
- pCode[i]->SetString( rPool.intern( pCode[i]->GetString().getString()));
+ i->SetString( rPool.intern( i->GetString().getString()));
break;
default:
; // nothing