summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--formula/source/core/api/FormulaCompiler.cxx14
-rw-r--r--formula/source/core/api/token.cxx11
-rw-r--r--include/formula/FormulaCompiler.hxx4
-rw-r--r--sc/inc/compiler.hxx4
-rw-r--r--sc/source/core/tool/token.cxx2
5 files changed, 16 insertions, 19 deletions
diff --git a/formula/source/core/api/FormulaCompiler.cxx b/formula/source/core/api/FormulaCompiler.cxx
index 514d11caf14e..afd6746411df 100644
--- a/formula/source/core/api/FormulaCompiler.cxx
+++ b/formula/source/core/api/FormulaCompiler.cxx
@@ -1195,7 +1195,7 @@ void FormulaCompiler::Factor()
pFacToken->GetJump()[ 0 ] = 3; // if, else, behind
break;
case ocChose:
- pFacToken->GetJump()[ 0 ] = MAXJUMPCOUNT+1;
+ pFacToken->GetJump()[ 0 ] = FORMULA_MAXJUMPCOUNT + 1;
break;
case ocIfError:
case ocIfNA:
@@ -1225,7 +1225,7 @@ void FormulaCompiler::Factor()
nJumpMax = 3;
break;
case ocChose:
- nJumpMax = MAXJUMPCOUNT;
+ nJumpMax = FORMULA_MAXJUMPCOUNT;
break;
case ocIfError:
case ocIfNA:
@@ -1236,7 +1236,7 @@ void FormulaCompiler::Factor()
SAL_WARN( "formula.core", "FormulaCompiler::Factor: forgot to add a jump max case?");
}
short nJumpCount = 0;
- while ( (nJumpCount < (MAXJUMPCOUNT - 1)) && (eOp == ocSep)
+ while ( (nJumpCount < (FORMULA_MAXJUMPCOUNT - 1)) && (eOp == ocSep)
&& (!pArr->GetCodeError() || bIgnoreErrors) )
{
if ( ++nJumpCount <= nJumpMax )
@@ -1262,7 +1262,7 @@ void FormulaCompiler::Factor()
bLimitOk = (nJumpCount <= 3);
break;
case ocChose:
- bLimitOk = (nJumpCount < MAXJUMPCOUNT); /* TODO: check, really <, not <=? */
+ bLimitOk = (nJumpCount < FORMULA_MAXJUMPCOUNT); /* TODO: check, really <, not <=? */
break;
case ocIfError:
case ocIfNA:
@@ -1546,7 +1546,7 @@ bool FormulaCompiler::CompileTokenArray()
pArr->nRefs = 0; // count from start
pArr->DelRPN();
pStack = NULL;
- FormulaToken* pData[ MAXCODE ];
+ FormulaToken* pData[ FORMULA_MAXTOKENS ];
pCode = pData;
bool bWasForced = pArr->IsRecalcModeForced();
if ( bWasForced )
@@ -1951,9 +1951,9 @@ OpCode FormulaCompiler::NextToken()
}
void FormulaCompiler::PutCode( FormulaTokenRef& p )
{
- if( pc >= MAXCODE-1 )
+ if( pc >= FORMULA_MAXTOKENS - 1 )
{
- if ( pc == MAXCODE-1 )
+ if ( pc == FORMULA_MAXTOKENS - 1 )
{
p = new FormulaByteToken( ocStop );
p->IncRef();
diff --git a/formula/source/core/api/token.cxx b/formula/source/core/api/token.cxx
index b341cdc19253..9ea036cd1f23 100644
--- a/formula/source/core/api/token.cxx
+++ b/formula/source/core/api/token.cxx
@@ -29,7 +29,6 @@
#include "formula/tokenarray.hxx"
#include "formula/FormulaCompiler.hxx"
#include <formula/compiler.hrc>
-#define MAXJUMPCOUNT 32 /* maximum number of jumps (ocChose) */
namespace formula
{
@@ -726,8 +725,8 @@ FormulaToken* FormulaTokenArray::MergeArray( )
FormulaToken* FormulaTokenArray::Add( FormulaToken* t )
{
if( !pCode )
- pCode = new FormulaToken*[ MAXCODE ];
- if( nLen < MAXCODE-1 )
+ pCode = new FormulaToken*[ FORMULA_MAXTOKENS ];
+ if( nLen < FORMULA_MAXTOKENS - 1 )
{
CheckToken(*t);
pCode[ nLen++ ] = t;
@@ -742,7 +741,7 @@ FormulaToken* FormulaTokenArray::Add( FormulaToken* t )
else
{
t->Delete();
- if ( nLen == MAXCODE-1 )
+ if ( nLen == FORMULA_MAXTOKENS - 1 )
{
t = new FormulaByteToken( ocStop );
pCode[ nLen++ ] = t;
@@ -1194,11 +1193,11 @@ FormulaToken* FormulaTokenArray::AddOpCode( OpCode eOp )
case ocIfNA:
case ocChose:
{
- short nJump[MAXJUMPCOUNT + 1];
+ short nJump[FORMULA_MAXJUMPCOUNT + 1];
if ( eOp == ocIf )
nJump[ 0 ] = 3;
else if ( eOp == ocChose )
- nJump[ 0 ] = MAXJUMPCOUNT + 1;
+ nJump[ 0 ] = FORMULA_MAXJUMPCOUNT + 1;
else
nJump[ 0 ] = 2;
pRet = new FormulaJumpToken( eOp, (short*)nJump );
diff --git a/include/formula/FormulaCompiler.hxx b/include/formula/FormulaCompiler.hxx
index b53bb2df4316..6e271ca15a4f 100644
--- a/include/formula/FormulaCompiler.hxx
+++ b/include/formula/FormulaCompiler.hxx
@@ -36,8 +36,8 @@
#include "formula/ExternalReferenceHelper.hxx"
-#define MAXJUMPCOUNT 32 /* maximum number of jumps (ocChose) */
-#define MAXCODE 512 /* maximum number of tokens in formula */
+#define FORMULA_MAXJUMPCOUNT 32 /* maximum number of jumps (ocChose) */
+#define FORMULA_MAXTOKENS 8192 /* maximum number of tokens in formula */
namespace com { namespace sun { namespace star {
diff --git a/sc/inc/compiler.hxx b/sc/inc/compiler.hxx
index 518635ddf669..4f4a58cf245f 100644
--- a/sc/inc/compiler.hxx
+++ b/sc/inc/compiler.hxx
@@ -42,9 +42,7 @@
// constants and data types also for external modules (ScInterpreter et al)
-#define MAXCODE 512 /* maximum number of tokens in formula */
#define MAXSTRLEN 1024 /* maximum length of input string of one symbol */
-#define MAXJUMPCOUNT 32 /* maximum number of jumps (ocChose) */
// flag values of CharTable
#define SC_COMPILER_C_ILLEGAL 0x00000000
@@ -146,7 +144,7 @@ public:
ScMatrix* pMat;
sal_uInt16 nError;
sal_Unicode cStr[ MAXSTRLEN+1 ]; // string (up to 255 characters + 0)
- short nJump[MAXJUMPCOUNT+1]; // If/Chose token
+ short nJump[ FORMULA_MAXJUMPCOUNT + 1 ]; // If/Chose token
};
//! other members not initialized
diff --git a/sc/source/core/tool/token.cxx b/sc/source/core/tool/token.cxx
index 2b56456bd6a2..3dff6a930804 100644
--- a/sc/source/core/tool/token.cxx
+++ b/sc/source/core/tool/token.cxx
@@ -136,7 +136,7 @@ void ScRawToken::SetOpCode( OpCode e )
break;
case ocChose:
eType = svJump;
- nJump[ 0 ] = MAXJUMPCOUNT+1;
+ nJump[ 0 ] = FORMULA_MAXJUMPCOUNT + 1;
break;
case ocMissing:
eType = svMissing;