[Libreoffice-commits] core.git: sc/source
Caolán McNamara (via logerrit)
logerrit at kemper.freedesktop.org
Sun Sep 13 13:15:27 UTC 2020
sc/source/core/data/formulacell.cxx | 10 -
sc/source/core/data/simpleformulacalc.cxx | 2
sc/source/core/inc/interpre.hxx | 4
sc/source/core/tool/interpr1.cxx | 286 +++++++++++++++---------------
sc/source/core/tool/interpr2.cxx | 52 ++---
sc/source/core/tool/interpr3.cxx | 34 +--
sc/source/core/tool/interpr4.cxx | 220 +++++++++++------------
sc/source/core/tool/interpr5.cxx | 30 +--
sc/source/core/tool/interpr6.cxx | 14 -
sc/source/core/tool/interpr7.cxx | 22 +-
sc/source/core/tool/interpr8.cxx | 14 -
11 files changed, 344 insertions(+), 344 deletions(-)
New commits:
commit 6cf2d7e9b5ea749fe4770a4cf7d12d86a4791978
Author: Caolán McNamara <caolanm at redhat.com>
AuthorDate: Sat Sep 12 14:23:16 2020 +0100
Commit: Caolán McNamara <caolanm at redhat.com>
CommitDate: Sun Sep 13 15:14:43 2020 +0200
establish ScInterpreter::pDok is never null
Change-Id: I493eedebcb35fbbf4917ea77f812be43989db6ef
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102523
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
diff --git a/sc/source/core/data/formulacell.cxx b/sc/source/core/data/formulacell.cxx
index 24d77cb2369a..79b7738e3471 100644
--- a/sc/source/core/data/formulacell.cxx
+++ b/sc/source/core/data/formulacell.cxx
@@ -1928,7 +1928,7 @@ void ScFormulaCell::InterpretTail( ScInterpreterContext& rContext, ScInterpretTa
}
else
{
- pScopedInterpreter.reset(new ScInterpreter( this, pDocument, rContext, aPos, *pCode ));
+ pScopedInterpreter.reset(new ScInterpreter( this, *pDocument, rContext, aPos, *pCode ));
pInterpreter = pScopedInterpreter.get();
}
@@ -2354,7 +2354,7 @@ void ScFormulaCell::HandleStuffAfterParallelCalculation(ScInterpreter* pInterpre
pInterpreter->Init(this, aPos, *pCode);
else
{
- pScopedInterpreter.reset(new ScInterpreter( this, pDocument, pDocument->GetNonThreadedContext(), aPos, *pCode ));
+ pScopedInterpreter.reset(new ScInterpreter( this, *pDocument, pDocument->GetNonThreadedContext(), aPos, *pCode ));
pInterpreter = pScopedInterpreter.get();
}
@@ -4928,7 +4928,7 @@ bool ScFormulaCell::InterpretFormulaGroupThreading(sc::FormulaLogger::GroupScope
{
context = aContextGetterGuard.GetInterpreterContextForThreadIdx(i);
assert(!context->pInterpreter);
- aInterpreters[i].reset(new ScInterpreter(this, pDocument, *context, mxGroup->mpTopCell->aPos, *pCode, true));
+ aInterpreters[i].reset(new ScInterpreter(this, *pDocument, *context, mxGroup->mpTopCell->aPos, *pCode, true));
context->pInterpreter = aInterpreters[i].get();
ScDocument::SetupFromNonThreadedContext(*context, i);
rThreadPool.pushTask(std::make_unique<Executor>(aTag, i, nThreadCount, pDocument, context, mxGroup->mpTopCell->aPos,
@@ -5181,14 +5181,14 @@ bool ScFormulaCell::InterpretInvariantFormulaGroup()
ScCompiler aComp(pDocument, aPos, aCode, pDocument->GetGrammar(), true, cMatrixFlag != ScMatrixMode::NONE);
aComp.CompileTokenArray(); // Create RPN token array.
- ScInterpreter aInterpreter(this, pDocument, pDocument->GetNonThreadedContext(), aPos, aCode);
+ ScInterpreter aInterpreter(this, *pDocument, pDocument->GetNonThreadedContext(), aPos, aCode);
aInterpreter.Interpret();
aResult.SetToken(aInterpreter.GetResultToken().get());
}
else
{
// Formula contains no references.
- ScInterpreter aInterpreter(this, pDocument, pDocument->GetNonThreadedContext(), aPos, *pCode);
+ ScInterpreter aInterpreter(this, *pDocument, pDocument->GetNonThreadedContext(), aPos, *pCode);
aInterpreter.Interpret();
aResult.SetToken(aInterpreter.GetResultToken().get());
}
diff --git a/sc/source/core/data/simpleformulacalc.cxx b/sc/source/core/data/simpleformulacalc.cxx
index caeef59e7e61..e11d1beb3aef 100644
--- a/sc/source/core/data/simpleformulacalc.cxx
+++ b/sc/source/core/data/simpleformulacalc.cxx
@@ -46,7 +46,7 @@ void ScSimpleFormulaCalculator::Calculate()
mbCalculated = true;
- ScInterpreter aInt(mrDoc.GetFormulaCell( maAddr ), &mrDoc, mrDoc.GetNonThreadedContext(), maAddr, *mpCode);
+ ScInterpreter aInt(mrDoc.GetFormulaCell( maAddr ), mrDoc, mrDoc.GetNonThreadedContext(), maAddr, *mpCode);
if (mbMatrixFormula)
aInt.AssertFormulaMatrix();
diff --git a/sc/source/core/inc/interpre.hxx b/sc/source/core/inc/interpre.hxx
index 9aaeeb96259c..7c024e6e9150 100644
--- a/sc/source/core/inc/interpre.hxx
+++ b/sc/source/core/inc/interpre.hxx
@@ -197,7 +197,7 @@ private:
ScAddress aPos;
ScTokenArray* pArr;
ScInterpreterContext& mrContext;
- ScDocument* pDok;
+ ScDocument& mrDoc;
sfx2::LinkManager* mpLinkManager;
svl::SharedStringPool& mrStrPool;
formula::FormulaConstTokenRef xResult;
@@ -1006,7 +1006,7 @@ private:
double GetTInv( double fAlpha, double fSize, int nType );
public:
- ScInterpreter( ScFormulaCell* pCell, ScDocument* pDoc, ScInterpreterContext& rContext,
+ ScInterpreter( ScFormulaCell* pCell, ScDocument& rDoc, ScInterpreterContext& rContext,
const ScAddress&, ScTokenArray&, bool bForGroupThreading = false );
~ScInterpreter();
diff --git a/sc/source/core/tool/interpr1.cxx b/sc/source/core/tool/interpr1.cxx
index 44e0f9293617..b66d84ae41e2 100644
--- a/sc/source/core/tool/interpr1.cxx
+++ b/sc/source/core/tool/interpr1.cxx
@@ -282,7 +282,7 @@ void ScInterpreter::ScIfError( bool bNAonly )
else
{
- ScRefCellValue aCell(*pDok, aAdr);
+ ScRefCellValue aCell(mrDoc, aAdr);
nGlobalError = GetCellErrCode(aCell);
if (nGlobalError != FormulaError::NONE)
bError = true;
@@ -597,7 +597,7 @@ bool ScInterpreter::JumpMatrix( short nStackLevel )
}
else
{
- ScRefCellValue aCell(*pDok, aAdr);
+ ScRefCellValue aCell(mrDoc, aAdr);
if (aCell.hasEmptyValue())
pJumpMatrix->PutResultEmpty( nC, nR );
else if (aCell.hasNumeric())
@@ -675,7 +675,7 @@ bool ScInterpreter::JumpMatrix( short nStackLevel )
nRow = aRange.aStart.Row();
aAdr.SetCol( static_cast<SCCOL>(nCol) );
aAdr.SetRow( static_cast<SCROW>(nRow) );
- ScRefCellValue aCell(*pDok, aAdr);
+ ScRefCellValue aCell(mrDoc, aAdr);
if (aCell.hasEmptyValue())
pJumpMatrix->PutResultEmpty( nC, nR );
else if (aCell.hasNumeric())
@@ -886,7 +886,7 @@ double ScInterpreter::Compare( ScQueryOp eOp )
{
sc::Compare aComp;
aComp.meOp = eOp;
- aComp.mbIgnoreCase = pDok->GetDocOptions().IsIgnoreCase();
+ aComp.mbIgnoreCase = mrDoc.GetDocOptions().IsIgnoreCase();
for( short i = 1; i >= 0; i-- )
{
sc::Compare::Cell& rCell = aComp.maCells[i];
@@ -912,7 +912,7 @@ double ScInterpreter::Compare( ScQueryOp eOp )
ScAddress aAdr;
if ( !PopDoubleRefOrSingleRef( aAdr ) )
break;
- ScRefCellValue aCell(*pDok, aAdr);
+ ScRefCellValue aCell(mrDoc, aAdr);
if (aCell.hasEmptyValue())
rCell.mbEmpty = true;
else if (aCell.hasString())
@@ -983,7 +983,7 @@ sc::RangeMatrix ScInterpreter::CompareMat( ScQueryOp eOp, sc::CompareOptions* pO
{
sc::Compare aComp;
aComp.meOp = eOp;
- aComp.mbIgnoreCase = pDok->GetDocOptions().IsIgnoreCase();
+ aComp.mbIgnoreCase = mrDoc.GetDocOptions().IsIgnoreCase();
sc::RangeMatrix aMat[2];
ScAddress aAdr;
for( short i = 1; i >= 0; i-- )
@@ -1008,7 +1008,7 @@ sc::RangeMatrix ScInterpreter::CompareMat( ScQueryOp eOp, sc::CompareOptions* pO
case svSingleRef:
{
PopSingleRef( aAdr );
- ScRefCellValue aCell(*pDok, aAdr);
+ ScRefCellValue aCell(mrDoc, aAdr);
if (aCell.hasEmptyValue())
rCell.mbEmpty = true;
else if (aCell.hasString())
@@ -1295,7 +1295,7 @@ void ScInterpreter::ScAnd()
PopSingleRef( aAdr );
if ( nGlobalError == FormulaError::NONE )
{
- ScRefCellValue aCell(*pDok, aAdr);
+ ScRefCellValue aCell(mrDoc, aAdr);
if (aCell.hasNumeric())
{
bHaveValue = true;
@@ -1314,7 +1314,7 @@ void ScInterpreter::ScAnd()
{
double fVal;
FormulaError nErr = FormulaError::NONE;
- ScValueIterator aValIter( pDok, aRange );
+ ScValueIterator aValIter( &mrDoc, aRange );
if ( aValIter.GetFirst( fVal, nErr ) && nErr == FormulaError::NONE )
{
bHaveValue = true;
@@ -1393,7 +1393,7 @@ void ScInterpreter::ScOr()
PopSingleRef( aAdr );
if ( nGlobalError == FormulaError::NONE )
{
- ScRefCellValue aCell(*pDok, aAdr);
+ ScRefCellValue aCell(mrDoc, aAdr);
if (aCell.hasNumeric())
{
bHaveValue = true;
@@ -1412,7 +1412,7 @@ void ScInterpreter::ScOr()
{
double fVal;
FormulaError nErr = FormulaError::NONE;
- ScValueIterator aValIter( pDok, aRange );
+ ScValueIterator aValIter( &mrDoc, aRange );
if ( aValIter.GetFirst( fVal, nErr ) )
{
bHaveValue = true;
@@ -1493,7 +1493,7 @@ void ScInterpreter::ScXor()
PopSingleRef( aAdr );
if ( nGlobalError == FormulaError::NONE )
{
- ScRefCellValue aCell(*pDok, aAdr);
+ ScRefCellValue aCell(mrDoc, aAdr);
if (aCell.hasNumeric())
{
bHaveValue = true;
@@ -1514,7 +1514,7 @@ void ScInterpreter::ScXor()
{
double fVal;
FormulaError nErr = FormulaError::NONE;
- ScValueIterator aValIter( pDok, aRange );
+ ScValueIterator aValIter( &mrDoc, aRange );
if ( aValIter.GetFirst( fVal, nErr ) )
{
bHaveValue = true;
@@ -1988,7 +1988,7 @@ void ScInterpreter::ScIsEmpty()
// NOTE: this differs from COUNTBLANK() ScCountEmptyCells() that
// may treat ="" in the referenced cell as blank for Excel
// interoperability.
- ScRefCellValue aCell(*pDok, aAdr);
+ ScRefCellValue aCell(mrDoc, aAdr);
if (aCell.meType == CELLTYPE_NONE)
nRes = 1;
}
@@ -2037,7 +2037,7 @@ bool ScInterpreter::IsString()
if ( !PopDoubleRefOrSingleRef( aAdr ) )
break;
- ScRefCellValue aCell(*pDok, aAdr);
+ ScRefCellValue aCell(mrDoc, aAdr);
if (GetCellErrCode(aCell) == FormulaError::NONE)
{
switch (aCell.meType)
@@ -2110,7 +2110,7 @@ void ScInterpreter::ScIsLogical()
if ( !PopDoubleRefOrSingleRef( aAdr ) )
break;
- ScRefCellValue aCell(*pDok, aAdr);
+ ScRefCellValue aCell(mrDoc, aAdr);
if (GetCellErrCode(aCell) == FormulaError::NONE)
{
if (aCell.hasNumeric())
@@ -2151,7 +2151,7 @@ void ScInterpreter::ScType()
if ( !PopDoubleRefOrSingleRef( aAdr ) )
break;
- ScRefCellValue aCell(*pDok, aAdr);
+ ScRefCellValue aCell(mrDoc, aAdr);
if (GetCellErrCode(aCell) == FormulaError::NONE)
{
switch (aCell.meType)
@@ -2268,7 +2268,7 @@ void ScInterpreter::ScCell()
PushIllegalParameter();
else
{
- ScRefCellValue aCell(*pDok, aCellPos);
+ ScRefCellValue aCell(mrDoc, aCellPos);
ScCellKeywordTranslator::transKeyword(aInfoType, ScGlobal::GetLocale(), ocCell);
@@ -2288,20 +2288,20 @@ void ScInterpreter::ScCell()
else if( aInfoType == "ADDRESS" )
{ // address formatted as [['FILENAME'#]$TABLE.]$COL$ROW
ScRefFlags nFlags = (aCellPos.Tab() == aPos.Tab()) ? ScRefFlags::ADDR_ABS : ScRefFlags::ADDR_ABS_3D;
- OUString aStr(aCellPos.Format(nFlags, pDok, pDok->GetAddressConvention()));
+ OUString aStr(aCellPos.Format(nFlags, &mrDoc, mrDoc.GetAddressConvention()));
PushString(aStr);
}
else if( aInfoType == "FILENAME" )
{ // file name and table name: 'FILENAME'#$TABLE
SCTAB nTab = aCellPos.Tab();
OUString aFuncResult;
- if( nTab < pDok->GetTableCount() )
+ if( nTab < mrDoc.GetTableCount() )
{
- if( pDok->GetLinkMode( nTab ) == ScLinkMode::VALUE )
- pDok->GetName( nTab, aFuncResult );
+ if( mrDoc.GetLinkMode( nTab ) == ScLinkMode::VALUE )
+ mrDoc.GetName( nTab, aFuncResult );
else
{
- SfxObjectShell* pShell = pDok->GetDocumentShell();
+ SfxObjectShell* pShell = mrDoc.GetDocumentShell();
if( pShell && pShell->GetMedium() )
{
OUStringBuffer aBuf;
@@ -2310,7 +2310,7 @@ void ScInterpreter::ScCell()
aBuf.append(rURLObj.GetMainURL(INetURLObject::DecodeMechanism::Unambiguous));
aBuf.append("'#$");
OUString aTabName;
- pDok->GetName( nTab, aTabName );
+ mrDoc.GetName( nTab, aTabName );
aBuf.append(aTabName);
aFuncResult = aBuf.makeStringAndClear();
}
@@ -2323,10 +2323,10 @@ void ScInterpreter::ScCell()
// Yes, passing tab as col is intentional!
OUString aCellStr1 =
ScAddress( static_cast<SCCOL>(aCellPos.Tab()), 0, 0 ).Format(
- (ScRefFlags::COL_ABS|ScRefFlags::COL_VALID), nullptr, pDok->GetAddressConvention() );
+ (ScRefFlags::COL_ABS|ScRefFlags::COL_VALID), nullptr, mrDoc.GetAddressConvention() );
OUString aCellStr2 =
aCellPos.Format((ScRefFlags::COL_ABS|ScRefFlags::COL_VALID|ScRefFlags::ROW_ABS|ScRefFlags::ROW_VALID),
- nullptr, pDok->GetAddressConvention());
+ nullptr, mrDoc.GetAddressConvention());
OUString aFuncResult = aCellStr1 + ":" + aCellStr2;
PushString( aFuncResult );
}
@@ -2354,19 +2354,19 @@ void ScInterpreter::ScCell()
}
else if( aInfoType == "WIDTH" )
{ // column width (rounded off as count of zero characters in standard font and size)
- Printer* pPrinter = pDok->GetPrinter();
+ Printer* pPrinter = mrDoc.GetPrinter();
MapMode aOldMode( pPrinter->GetMapMode() );
vcl::Font aOldFont( pPrinter->GetFont() );
vcl::Font aDefFont;
pPrinter->SetMapMode(MapMode(MapUnit::MapTwip));
// font color doesn't matter here
- pDok->GetDefPattern()->GetFont( aDefFont, SC_AUTOCOL_BLACK, pPrinter );
+ mrDoc.GetDefPattern()->GetFont( aDefFont, SC_AUTOCOL_BLACK, pPrinter );
pPrinter->SetFont( aDefFont );
long nZeroWidth = pPrinter->GetTextWidth( OUString( '0' ) );
pPrinter->SetFont( aOldFont );
pPrinter->SetMapMode( aOldMode );
- int nZeroCount = static_cast<int>(pDok->GetColWidth( aCellPos.Col(), aCellPos.Tab() ) / nZeroWidth);
+ int nZeroCount = static_cast<int>(mrDoc.GetColWidth( aCellPos.Col(), aCellPos.Tab() ) / nZeroWidth);
PushInt( nZeroCount );
}
else if( aInfoType == "PREFIX" )
@@ -2374,7 +2374,7 @@ void ScInterpreter::ScCell()
sal_Unicode c = 0;
if (aCell.hasString())
{
- const SvxHorJustifyItem* pJustAttr = pDok->GetAttr( aCellPos, ATTR_HOR_JUSTIFY );
+ const SvxHorJustifyItem* pJustAttr = mrDoc.GetAttr( aCellPos, ATTR_HOR_JUSTIFY );
switch( pJustAttr->GetValue() )
{
case SvxCellHorJustify::Standard:
@@ -2389,7 +2389,7 @@ void ScInterpreter::ScCell()
}
else if( aInfoType == "PROTECT" )
{ // 1 = cell locked
- const ScProtectionAttr* pProtAttr = pDok->GetAttr( aCellPos, ATTR_PROTECTION );
+ const ScProtectionAttr* pProtAttr = mrDoc.GetAttr( aCellPos, ATTR_PROTECTION );
PushInt( pProtAttr->GetProtection() ? 1 : 0 );
}
@@ -2397,18 +2397,18 @@ void ScInterpreter::ScCell()
else if( aInfoType == "FORMAT" )
{ // specific format code for standard formats
OUString aFuncResult;
- sal_uInt32 nFormat = pDok->GetNumberFormat( aCellPos );
+ sal_uInt32 nFormat = mrDoc.GetNumberFormat( aCellPos );
getFormatString(pFormatter, nFormat, aFuncResult);
PushString( aFuncResult );
}
else if( aInfoType == "COLOR" )
{ // 1 = negative values are colored, otherwise 0
- const SvNumberformat* pFormat = pFormatter->GetEntry( pDok->GetNumberFormat( aCellPos ) );
+ const SvNumberformat* pFormat = pFormatter->GetEntry( mrDoc.GetNumberFormat( aCellPos ) );
PushInt( lcl_FormatHasNegColor( pFormat ) ? 1 : 0 );
}
else if( aInfoType == "PARENTHESES" )
{ // 1 = format string contains a '(' character, otherwise 0
- const SvNumberformat* pFormat = pFormatter->GetEntry( pDok->GetNumberFormat( aCellPos ) );
+ const SvNumberformat* pFormat = pFormatter->GetEntry( mrDoc.GetNumberFormat( aCellPos ) );
PushInt( lcl_FormatHasOpenPar( pFormat ) ? 1 : 0 );
}
else
@@ -2450,7 +2450,7 @@ void ScInterpreter::ScCellExternal()
aRef.SetAbsTab(-1); // revert the value.
ScCellKeywordTranslator::transKeyword(aInfoType, ScGlobal::GetLocale(), ocCell);
- ScExternalRefManager* pRefMgr = pDok->GetExternalRefManager();
+ ScExternalRefManager* pRefMgr = mrDoc.GetExternalRefManager();
if ( aInfoType == "COL" )
PushInt(nCol + 1);
@@ -2469,9 +2469,9 @@ void ScInterpreter::ScCellExternal()
else if ( aInfoType == "ADDRESS" )
{
// ODF 1.2 says we need to always display address using the ODF A1 grammar.
- ScTokenArray aArray(pDok);
+ ScTokenArray aArray(&mrDoc);
aArray.AddExternalSingleReference(nFileId, svl::SharedString( aTabName), aRef); // string not interned
- ScCompiler aComp(pDok, aPos, aArray, formula::FormulaGrammar::GRAM_ODFF_A1);
+ ScCompiler aComp(&mrDoc, aPos, aArray, formula::FormulaGrammar::GRAM_ODFF_A1);
OUString aStr;
aComp.CreateStringFromTokenArray(aStr);
PushString(aStr);
@@ -2626,7 +2626,7 @@ void ScInterpreter::ScIsValue()
if ( !PopDoubleRefOrSingleRef( aAdr ) )
break;
- ScRefCellValue aCell(*pDok, aAdr);
+ ScRefCellValue aCell(mrDoc, aAdr);
if (GetCellErrCode(aCell) == FormulaError::NONE)
{
switch (aCell.meType)
@@ -2721,7 +2721,7 @@ void ScInterpreter::ScIsFormula()
for (SCROW nRow = nRow1; nRow <= nRow2; ++nRow)
{
aAdr.SetRow(nRow);
- ScRefCellValue aCell(*pDok, aAdr);
+ ScRefCellValue aCell(mrDoc, aAdr);
pResMat->PutBoolean( (aCell.meType == CELLTYPE_FORMULA), i,j);
++j;
}
@@ -2739,7 +2739,7 @@ void ScInterpreter::ScIsFormula()
if ( !PopDoubleRefOrSingleRef( aAdr ) )
break;
- bRes = (pDok->GetCellType(aAdr) == CELLTYPE_FORMULA);
+ bRes = (mrDoc.GetCellType(aAdr) == CELLTYPE_FORMULA);
}
break;
default:
@@ -2783,7 +2783,7 @@ void ScInterpreter::ScFormula()
for (SCROW nRow = nRow1; nRow <= nRow2; ++nRow)
{
aAdr.SetRow(nRow);
- ScRefCellValue aCell(*pDok, aAdr);
+ ScRefCellValue aCell(mrDoc, aAdr);
switch (aCell.meType)
{
case CELLTYPE_FORMULA :
@@ -2809,7 +2809,7 @@ void ScInterpreter::ScFormula()
if ( !PopDoubleRefOrSingleRef( aAdr ) )
break;
- ScRefCellValue aCell(*pDok, aAdr);
+ ScRefCellValue aCell(mrDoc, aAdr);
switch (aCell.meType)
{
case CELLTYPE_FORMULA :
@@ -2842,7 +2842,7 @@ void ScInterpreter::ScIsNV()
bRes = true;
else if (bOk)
{
- ScRefCellValue aCell(*pDok, aAdr);
+ ScRefCellValue aCell(mrDoc, aAdr);
FormulaError nErr = GetCellErrCode(aCell);
bRes = (nErr == FormulaError::NotAvailable);
}
@@ -2899,7 +2899,7 @@ void ScInterpreter::ScIsErr()
bRes = true;
else
{
- ScRefCellValue aCell(*pDok, aAdr);
+ ScRefCellValue aCell(mrDoc, aAdr);
FormulaError nErr = GetCellErrCode(aCell);
bRes = (nErr != FormulaError::NONE && nErr != FormulaError::NotAvailable);
}
@@ -2966,7 +2966,7 @@ void ScInterpreter::ScIsError()
bRes = true;
else
{
- ScRefCellValue aCell(*pDok, aAdr);
+ ScRefCellValue aCell(mrDoc, aAdr);
bRes = (GetCellErrCode(aCell) != FormulaError::NONE);
}
}
@@ -3020,7 +3020,7 @@ bool ScInterpreter::IsEven()
if ( !PopDoubleRefOrSingleRef( aAdr ) )
break;
- ScRefCellValue aCell(*pDok, aAdr);
+ ScRefCellValue aCell(mrDoc, aAdr);
FormulaError nErr = GetCellErrCode(aCell);
if (nErr != FormulaError::NONE)
SetError(nErr);
@@ -3206,7 +3206,7 @@ void ScInterpreter::ScT()
return ;
}
bool bValue = false;
- ScRefCellValue aCell(*pDok, aAdr);
+ ScRefCellValue aCell(mrDoc, aAdr);
if (GetCellErrCode(aCell) == FormulaError::NONE)
{
switch (aCell.meType)
@@ -3283,7 +3283,7 @@ void ScInterpreter::ScValue()
PushInt(0);
return;
}
- ScRefCellValue aCell(*pDok, aAdr);
+ ScRefCellValue aCell(mrDoc, aAdr);
if (aCell.hasString())
{
svl::SharedString aSS;
@@ -3639,7 +3639,7 @@ void ScInterpreter::ScMin( bool bTextAsZero )
case svSingleRef :
{
PopSingleRef( aAdr );
- ScRefCellValue aCell(*pDok, aAdr);
+ ScRefCellValue aCell(mrDoc, aAdr);
if (aCell.hasNumeric())
{
nVal = GetCellValue(aAdr, aCell);
@@ -3668,7 +3668,7 @@ void ScInterpreter::ScMin( bool bTextAsZero )
{
FormulaError nErr = FormulaError::NONE;
PopDoubleRef( aRange, nParamCount, nRefInList);
- ScValueIterator aValIter( pDok, aRange, mnSubTotalFlags, bTextAsZero );
+ ScValueIterator aValIter( &mrDoc, aRange, mnSubTotalFlags, bTextAsZero );
aValIter.SetInterpreterContext( &mrContext );
if (aValIter.GetFirst(nVal, nErr))
{
@@ -3797,7 +3797,7 @@ void ScInterpreter::ScMax( bool bTextAsZero )
case svSingleRef :
{
PopSingleRef( aAdr );
- ScRefCellValue aCell(*pDok, aAdr);
+ ScRefCellValue aCell(mrDoc, aAdr);
if (aCell.hasNumeric())
{
nVal = GetCellValue(aAdr, aCell);
@@ -3826,7 +3826,7 @@ void ScInterpreter::ScMax( bool bTextAsZero )
{
FormulaError nErr = FormulaError::NONE;
PopDoubleRef( aRange, nParamCount, nRefInList);
- ScValueIterator aValIter( pDok, aRange, mnSubTotalFlags, bTextAsZero );
+ ScValueIterator aValIter( &mrDoc, aRange, mnSubTotalFlags, bTextAsZero );
aValIter.SetInterpreterContext( &mrContext );
if (aValIter.GetFirst(nVal, nErr))
{
@@ -3956,7 +3956,7 @@ void ScInterpreter::GetStVarParams( bool bTextAsZero, double(*VarResult)( double
case svSingleRef :
{
PopSingleRef( aAdr );
- ScRefCellValue aCell(*pDok, aAdr);
+ ScRefCellValue aCell(mrDoc, aAdr);
if (aCell.hasNumeric())
{
fVal = GetCellValue(aAdr, aCell);
@@ -4002,7 +4002,7 @@ void ScInterpreter::GetStVarParams( bool bTextAsZero, double(*VarResult)( double
ArrayRefListValue& rArrayValue = vArrayValues[nRefArrayPos];
FormulaError nErr = FormulaError::NONE;
PopDoubleRef( aRange, nParamCount, nRefInList);
- ScValueIterator aValIter( pDok, aRange, mnSubTotalFlags, bTextAsZero );
+ ScValueIterator aValIter( &mrDoc, aRange, mnSubTotalFlags, bTextAsZero );
if (aValIter.GetFirst(fVal, nErr))
{
do
@@ -4027,7 +4027,7 @@ void ScInterpreter::GetStVarParams( bool bTextAsZero, double(*VarResult)( double
{
FormulaError nErr = FormulaError::NONE;
PopDoubleRef( aRange, nParamCount, nRefInList);
- ScValueIterator aValIter( pDok, aRange, mnSubTotalFlags, bTextAsZero );
+ ScValueIterator aValIter( &mrDoc, aRange, mnSubTotalFlags, bTextAsZero );
if (aValIter.GetFirst(fVal, nErr))
{
do
@@ -4247,7 +4247,7 @@ void ScInterpreter::ScColumns()
OUString aTabName;
ScComplexRefData aRef;
PopExternalDoubleRef( nFileId, aTabName, aRef);
- ScRange aAbs = aRef.toAbs(pDok, aPos);
+ ScRange aAbs = aRef.toAbs(&mrDoc, aPos);
nVal += static_cast<sal_uLong>(aAbs.aEnd.Tab() - aAbs.aStart.Tab() + 1) *
static_cast<sal_uLong>(aAbs.aEnd.Col() - aAbs.aStart.Col() + 1);
}
@@ -4304,7 +4304,7 @@ void ScInterpreter::ScRows()
OUString aTabName;
ScComplexRefData aRef;
PopExternalDoubleRef( nFileId, aTabName, aRef);
- ScRange aAbs = aRef.toAbs(pDok, aPos);
+ ScRange aAbs = aRef.toAbs(&mrDoc, aPos);
nVal += static_cast<sal_uLong>(aAbs.aEnd.Tab() - aAbs.aStart.Tab() + 1) *
static_cast<sal_uLong>(aAbs.aEnd.Row() - aAbs.aStart.Row() + 1);
}
@@ -4322,7 +4322,7 @@ void ScInterpreter::ScSheets()
sal_uInt8 nParamCount = GetByte();
sal_uLong nVal;
if ( nParamCount == 0 )
- nVal = pDok->GetTableCount();
+ nVal = mrDoc.GetTableCount();
else
{
nVal = 0;
@@ -4351,7 +4351,7 @@ void ScInterpreter::ScSheets()
OUString aTabName;
ScComplexRefData aRef;
PopExternalDoubleRef( nFileId, aTabName, aRef);
- ScRange aAbs = aRef.toAbs(pDok, aPos);
+ ScRange aAbs = aRef.toAbs(&mrDoc, aPos);
nVal += static_cast<sal_uLong>(aAbs.aEnd.Tab() - aAbs.aStart.Tab() + 1);
}
break;
@@ -4416,7 +4416,7 @@ void ScInterpreter::ScColumn()
OUString aTabName;
ScSingleRefData aRef;
PopExternalSingleRef( nFileId, aTabName, aRef );
- ScAddress aAbsRef = aRef.toAbs(pDok, aPos);
+ ScAddress aAbsRef = aRef.toAbs(&mrDoc, aPos);
nVal = static_cast<double>( aAbsRef.Col() + 1 );
}
break;
@@ -4440,7 +4440,7 @@ void ScInterpreter::ScColumn()
OUString aTabName;
ScComplexRefData aRef;
PopExternalDoubleRef( nFileId, aTabName, aRef );
- ScRange aAbs = aRef.toAbs(pDok, aPos);
+ ScRange aAbs = aRef.toAbs(&mrDoc, aPos);
nCol1 = aAbs.aStart.Col();
nCol2 = aAbs.aEnd.Col();
}
@@ -4520,7 +4520,7 @@ void ScInterpreter::ScRow()
OUString aTabName;
ScSingleRefData aRef;
PopExternalSingleRef( nFileId, aTabName, aRef );
- ScAddress aAbsRef = aRef.toAbs(pDok, aPos);
+ ScAddress aAbsRef = aRef.toAbs(&mrDoc, aPos);
nVal = static_cast<double>( aAbsRef.Row() + 1 );
}
break;
@@ -4543,7 +4543,7 @@ void ScInterpreter::ScRow()
OUString aTabName;
ScComplexRefData aRef;
PopExternalDoubleRef( nFileId, aTabName, aRef );
- ScRange aAbs = aRef.toAbs(pDok, aPos);
+ ScRange aAbs = aRef.toAbs(&mrDoc, aPos);
nRow1 = aAbs.aStart.Row();
nRow2 = aAbs.aEnd.Row();
}
@@ -4587,7 +4587,7 @@ void ScInterpreter::ScSheet()
case svString :
{
svl::SharedString aStr = PopString();
- if ( pDok->GetTable(aStr.getString(), nVal))
+ if ( mrDoc.GetTable(aStr.getString(), nVal))
++nVal;
else
SetError( FormulaError::IllegalArgument );
@@ -4874,7 +4874,7 @@ void ScInterpreter::ScMatch()
PushInt(0);
return ;
}
- ScRefCellValue aCell(*pDok, aAdr);
+ ScRefCellValue aCell(mrDoc, aAdr);
if (aCell.hasNumeric())
{
fVal = GetCellValue(aAdr, aCell);
@@ -4928,12 +4928,12 @@ void ScInterpreter::ScMatch()
}
if (rItem.meType == ScQueryEntry::ByString)
{
- bool bIsVBAMode = pDok->IsInVBAMode();
+ bool bIsVBAMode = mrDoc.IsInVBAMode();
if ( bIsVBAMode )
rParam.eSearchType = utl::SearchParam::SearchType::Wildcard;
else
- rParam.eSearchType = DetectSearchType(rEntry.GetQueryItem().maString.getString(), pDok);
+ rParam.eSearchType = DetectSearchType(rEntry.GetQueryItem().maString.getString(), &mrDoc);
}
if (pMatSrc) // The source data is matrix array.
@@ -5053,7 +5053,7 @@ void ScInterpreter::ScMatch()
rParam.bByRow = false;
rParam.nRow2 = nRow1;
rEntry.nField = nCol1;
- ScQueryCellIterator aCellIter(pDok, mrContext, nTab1, rParam, false);
+ ScQueryCellIterator aCellIter(&mrDoc, mrContext, nTab1, rParam, false);
// Advance Entry.nField in Iterator if column changed
aCellIter.SetAdvanceQueryParamEntryField( true );
if (fTyp == 0.0)
@@ -5135,7 +5135,7 @@ void ScInterpreter::ScCountEmptyCells()
nMaxCount = 1;
ScAddress aAdr;
PopSingleRef( aAdr );
- ScRefCellValue aCell(*pDok, aAdr);
+ ScRefCellValue aCell(mrDoc, aAdr);
if (!isCellContentEmpty(aCell))
nCount = 1;
}
@@ -5156,7 +5156,7 @@ void ScInterpreter::ScCountEmptyCells()
static_cast<sal_uLong>(aRange.aEnd.Col() - aRange.aStart.Col() + 1) *
static_cast<sal_uLong>(aRange.aEnd.Tab() - aRange.aStart.Tab() + 1);
- ScCellIterator aIter( pDok, aRange, mnSubTotalFlags);
+ ScCellIterator aIter( &mrDoc, aRange, mnSubTotalFlags);
for (bool bHas = aIter.first(); bHas; bHas = aIter.next())
{
const ScRefCellValue& rCell = aIter.getRefCellValue();
@@ -5279,7 +5279,7 @@ void ScInterpreter::IterateParametersIf( ScIterFuncIf eFunc )
return;
}
- ScRefCellValue aCell(*pDok, aAdr);
+ ScRefCellValue aCell(mrDoc, aAdr);
switch (aCell.meType)
{
case CELLTYPE_VALUE :
@@ -5434,8 +5434,8 @@ void ScInterpreter::IterateParametersIf( ScIterFuncIf eFunc )
}
else
{
- nMaxCol = pDok->MaxCol();
- nMaxRow = pDok->MaxRow();
+ nMaxCol = mrDoc.MaxCol();
+ nMaxRow = mrDoc.MaxRow();
}
if (nCol3 + nColDelta > nMaxCol)
{
@@ -5473,9 +5473,9 @@ void ScInterpreter::IterateParametersIf( ScIterFuncIf eFunc )
}
else
{
- rParam.FillInExcelSyntax(pDok->GetSharedStringPool(), aString.getString(), 0, pFormatter);
+ rParam.FillInExcelSyntax(mrDoc.GetSharedStringPool(), aString.getString(), 0, pFormatter);
if (rItem.meType == ScQueryEntry::ByString)
- rParam.eSearchType = DetectSearchType(rItem.maString.getString(), pDok);
+ rParam.eSearchType = DetectSearchType(rItem.maString.getString(), &mrDoc);
}
ScAddress aAdr;
aAdr.SetTab( nTab3 );
@@ -5487,7 +5487,7 @@ void ScInterpreter::IterateParametersIf( ScIterFuncIf eFunc )
if (pQueryMatrix)
{
// Never case-sensitive.
- sc::CompareOptions aOptions( pDok, rEntry, rParam.eSearchType);
+ sc::CompareOptions aOptions( &mrDoc, rEntry, rParam.eSearchType);
ScMatrixRef pResultMatrix = QueryMat( pQueryMatrix, aOptions);
if (nGlobalError != FormulaError::NONE || !pResultMatrix)
{
@@ -5531,7 +5531,7 @@ void ScInterpreter::IterateParametersIf( ScIterFuncIf eFunc )
{
aAdr.SetCol( nCol + nColDiff);
aAdr.SetRow( nRow + nRowDiff);
- ScRefCellValue aCell(*pDok, aAdr);
+ ScRefCellValue aCell(mrDoc, aAdr);
if (aCell.hasNumeric())
{
fVal = GetCellValue(aAdr, aCell);
@@ -5551,7 +5551,7 @@ void ScInterpreter::IterateParametersIf( ScIterFuncIf eFunc )
}
else
{
- ScQueryCellIterator aCellIter(pDok, mrContext, nTab1, rParam, false);
+ ScQueryCellIterator aCellIter(&mrDoc, mrContext, nTab1, rParam, false);
// Increment Entry.nField in iterator when switching to next column.
aCellIter.SetAdvanceQueryParamEntryField( true );
if ( aCellIter.GetFirst() )
@@ -5582,7 +5582,7 @@ void ScInterpreter::IterateParametersIf( ScIterFuncIf eFunc )
{
aAdr.SetCol( aCellIter.GetCol() + nColDiff);
aAdr.SetRow( aCellIter.GetRow() + nRowDiff);
- ScRefCellValue aCell(*pDok, aAdr);
+ ScRefCellValue aCell(mrDoc, aAdr);
if (aCell.hasNumeric())
{
fVal = GetCellValue(aAdr, aCell);
@@ -5658,7 +5658,7 @@ void ScInterpreter::ScCountIf()
PushInt(0);
return ;
}
- ScRefCellValue aCell(*pDok, aAdr);
+ ScRefCellValue aCell(mrDoc, aAdr);
switch (aCell.meType)
{
case CELLTYPE_VALUE :
@@ -5787,9 +5787,9 @@ void ScInterpreter::ScCountIf()
}
else
{
- rParam.FillInExcelSyntax(pDok->GetSharedStringPool(), aString.getString(), 0, pFormatter);
+ rParam.FillInExcelSyntax(mrDoc.GetSharedStringPool(), aString.getString(), 0, pFormatter);
if (rItem.meType == ScQueryEntry::ByString)
- rParam.eSearchType = DetectSearchType(rItem.maString.getString(), pDok);
+ rParam.eSearchType = DetectSearchType(rItem.maString.getString(), &mrDoc);
}
rParam.nCol1 = nCol1;
rParam.nCol2 = nCol2;
@@ -5797,7 +5797,7 @@ void ScInterpreter::ScCountIf()
if (pQueryMatrix)
{
// Never case-sensitive.
- sc::CompareOptions aOptions( pDok, rEntry, rParam.eSearchType);
+ sc::CompareOptions aOptions( &mrDoc, rEntry, rParam.eSearchType);
ScMatrixRef pResultMatrix = QueryMat( pQueryMatrix, aOptions);
if (nGlobalError != FormulaError::NONE || !pResultMatrix)
{
@@ -5815,7 +5815,7 @@ void ScInterpreter::ScCountIf()
}
else
{
- ScCountIfCellIterator aCellIter(pDok, mrContext, nTab1, rParam);
+ ScCountIfCellIterator aCellIter(&mrDoc, mrContext, nTab1, rParam);
fCount += aCellIter.GetCount();
}
}
@@ -5884,7 +5884,7 @@ void ScInterpreter::IterateParametersIfs( double(*ResultFunc)( const sc::ParamIf
{
// Shrink the range to actual data content.
aSubRange = aMainRange;
- pDok->GetDataAreaSubrange(aSubRange);
+ mrDoc.GetDataAreaSubrange(aSubRange);
nStartColDiff = aSubRange.aStart.Col() - aMainRange.aStart.Col();
nStartRowDiff = aSubRange.aStart.Row() - aMainRange.aStart.Row();
@@ -5921,7 +5921,7 @@ void ScInterpreter::IterateParametersIfs( double(*ResultFunc)( const sc::ParamIf
return;
}
- ScRefCellValue aCell(*pDok, aAdr);
+ ScRefCellValue aCell(mrDoc, aAdr);
switch (aCell.meType)
{
case CELLTYPE_VALUE :
@@ -6132,9 +6132,9 @@ void ScInterpreter::IterateParametersIfs( double(*ResultFunc)( const sc::ParamIf
}
else
{
- rParam.FillInExcelSyntax(pDok->GetSharedStringPool(), aString.getString(), 0, pFormatter);
+ rParam.FillInExcelSyntax(mrDoc.GetSharedStringPool(), aString.getString(), 0, pFormatter);
if (rItem.meType == ScQueryEntry::ByString)
- rParam.eSearchType = DetectSearchType(rItem.maString.getString(), pDok);
+ rParam.eSearchType = DetectSearchType(rItem.maString.getString(), &mrDoc);
}
rParam.nCol1 = nCol1;
rParam.nCol2 = nCol2;
@@ -6144,7 +6144,7 @@ void ScInterpreter::IterateParametersIfs( double(*ResultFunc)( const sc::ParamIf
if (pQueryMatrix)
{
// Never case-sensitive.
- sc::CompareOptions aOptions( pDok, rEntry, rParam.eSearchType);
+ sc::CompareOptions aOptions(&mrDoc, rEntry, rParam.eSearchType);
ScMatrixRef pResultMatrix = QueryMat( pQueryMatrix, aOptions);
if (nGlobalError != FormulaError::NONE || !pResultMatrix)
{
@@ -6170,7 +6170,7 @@ void ScInterpreter::IterateParametersIfs( double(*ResultFunc)( const sc::ParamIf
}
else
{
- ScQueryCellIterator aCellIter(pDok, mrContext, nTab1, rParam, false);
+ ScQueryCellIterator aCellIter(&mrDoc, mrContext, nTab1, rParam, false);
// Increment Entry.nField in iterator when switching to next column.
aCellIter.SetAdvanceQueryParamEntryField( true );
if ( aCellIter.GetFirst() )
@@ -6437,7 +6437,7 @@ void ScInterpreter::IterateParametersIfs( double(*ResultFunc)( const sc::ParamIf
{
aAdr.SetCol( nCol + nMainCol1);
aAdr.SetRow( nRow + nMainRow1);
- ScRefCellValue aCell(*pDok, aAdr);
+ ScRefCellValue aCell(mrDoc, aAdr);
if (aCell.hasNumeric())
{
fVal = GetCellValue(aAdr, aCell);
@@ -6717,7 +6717,7 @@ void ScInterpreter::ScLookup()
case svSingleRef:
{
PopSingleRef( aDataAdr );
- ScRefCellValue aCell(*pDok, aDataAdr);
+ ScRefCellValue aCell(mrDoc, aDataAdr);
if (aCell.hasEmptyValue())
{
// Empty cells aren't found anywhere, bail out early.
@@ -7021,7 +7021,7 @@ void ScInterpreter::ScLookup()
if (bResVertical)
{
SCROW nTempRow = static_cast<SCROW>(nResRow1 + nDelta);
- if (nTempRow > pDok->MaxRow())
+ if (nTempRow > mrDoc.MaxRow())
{
PushDouble(0);
return;
@@ -7032,7 +7032,7 @@ void ScInterpreter::ScLookup()
else
{
SCCOL nTempCol = static_cast<SCCOL>(nResCol1 + nDelta);
- if (nTempCol > pDok->MaxCol())
+ if (nTempCol > mrDoc.MaxCol())
{
PushDouble(0);
return;
@@ -7079,9 +7079,9 @@ void ScInterpreter::ScLookup()
rEntry.nField = nCol1;
ScQueryEntry::Item& rItem = rEntry.GetQueryItem();
if (rItem.meType == ScQueryEntry::ByString)
- aParam.eSearchType = DetectSearchType(rItem.maString.getString(), pDok);
+ aParam.eSearchType = DetectSearchType(rItem.maString.getString(), &mrDoc);
- ScQueryCellIterator aCellIter(pDok, mrContext, nTab1, aParam, false);
+ ScQueryCellIterator aCellIter(&mrDoc, mrContext, nTab1, aParam, false);
SCCOL nC;
SCROW nR;
// Advance Entry.nField in iterator upon switching columns if
@@ -7119,7 +7119,7 @@ void ScInterpreter::ScLookup()
if (bResVertical)
{
SCROW nTempRow = static_cast<SCROW>(nResRow1 + nDelta);
- if (nTempRow > pDok->MaxRow())
+ if (nTempRow > mrDoc.MaxRow())
{
PushDouble(0);
return;
@@ -7130,7 +7130,7 @@ void ScInterpreter::ScLookup()
else
{
SCCOL nTempCol = static_cast<SCCOL>(nResCol1 + nDelta);
- if (nTempCol > pDok->MaxCol())
+ if (nTempCol > mrDoc.MaxCol())
{
PushDouble(0);
return;
@@ -7180,7 +7180,7 @@ void ScInterpreter::ScLookup()
if (bVertical)
{
SCROW nTempRow = static_cast<SCROW>(nRow1 + nDelta);
- if (nTempRow > pDok->MaxRow())
+ if (nTempRow > mrDoc.MaxRow())
{
PushDouble(0);
return;
@@ -7191,7 +7191,7 @@ void ScInterpreter::ScLookup()
else
{
SCCOL nTempCol = static_cast<SCCOL>(nCol1 + nDelta);
- if (nTempCol > pDok->MaxCol())
+ if (nTempCol > mrDoc.MaxCol())
{
PushDouble(0);
return;
@@ -7310,7 +7310,7 @@ void ScInterpreter::CalculateLookup(bool bHLookup)
ScQueryEntry::Item& rItem = rEntry.GetQueryItem();
if (rItem.meType == ScQueryEntry::ByString)
- aParam.eSearchType = DetectSearchType(rItem.maString.getString(), pDok);
+ aParam.eSearchType = DetectSearchType(rItem.maString.getString(), &mrDoc);
if (pMat)
{
SCSIZE nMatCount = bHLookup ? nC : nR;
@@ -7428,7 +7428,7 @@ void ScInterpreter::CalculateLookup(bool bHLookup)
rEntry.eOp = SC_LESS_EQUAL;
if ( bHLookup )
{
- ScQueryCellIterator aCellIter(pDok, mrContext, nTab1, aParam, false);
+ ScQueryCellIterator aCellIter(&mrDoc, mrContext, nTab1, aParam, false);
// advance Entry.nField in Iterator upon switching columns
aCellIter.SetAdvanceQueryParamEntryField( true );
if ( bSorted )
@@ -7487,7 +7487,7 @@ bool ScInterpreter::FillEntry(ScQueryEntry& rEntry)
PushInt(0);
return false;
}
- ScRefCellValue aCell(*pDok, aAdr);
+ ScRefCellValue aCell(mrDoc, aAdr);
if (aCell.hasNumeric())
{
rItem.meType = ScQueryEntry::ByValue;
@@ -7703,7 +7703,7 @@ std::unique_ptr<ScDBQueryParamBase> ScInterpreter::GetDBParams( bool& rMissingFi
{
ScAddress aAdr;
PopSingleRef( aAdr );
- ScRefCellValue aCell(*pDok, aAdr);
+ ScRefCellValue aCell(mrDoc, aAdr);
if (aCell.hasNumeric())
nVal = GetCellValue(aAdr, aCell);
else
@@ -7769,7 +7769,7 @@ std::unique_ptr<ScDBQueryParamBase> ScInterpreter::GetDBParams( bool& rMissingFi
SetError(nErr);
}
- if (!pDok->ValidCol(nField))
+ if (!mrDoc.ValidCol(nField))
return nullptr;
unique_ptr<ScDBQueryParamBase> pParam( pDBRef->createQueryParam(pQueryRef.get()) );
@@ -7798,7 +7798,7 @@ std::unique_ptr<ScDBQueryParamBase> ScInterpreter::GetDBParams( bool& rMissingFi
rItem.meType = bNumber ? ScQueryEntry::ByValue : ScQueryEntry::ByString;
if (!bNumber && pParam->eSearchType == utl::SearchParam::SearchType::Normal)
- pParam->eSearchType = DetectSearchType(aQueryStr, pDok);
+ pParam->eSearchType = DetectSearchType(aQueryStr, &mrDoc);
}
return pParam;
}
@@ -7820,7 +7820,7 @@ void ScInterpreter::DBIterator( ScIterFunc eFunc )
SetError(FormulaError::NoValue);
return;
}
- ScDBQueryDataIterator aValIter(pDok, mrContext, std::move(pQueryParam));
+ ScDBQueryDataIterator aValIter(&mrDoc, mrContext, std::move(pQueryParam));
ScDBQueryDataIterator::Value aValue;
if ( aValIter.GetFirst(aValue) && aValue.mnError == FormulaError::NONE )
{
@@ -7908,7 +7908,7 @@ void ScInterpreter::ScDBCount()
// so the source range has to be restricted, like before the introduction
// of ScDBQueryParamBase.
p->nCol1 = p->nCol2 = p->mnField;
- ScQueryCellIterator aCellIter( pDok, mrContext, nTab, *p, true);
+ ScQueryCellIterator aCellIter( &mrDoc, mrContext, nTab, *p, true);
if ( aCellIter.GetFirst() )
{
do
@@ -7924,7 +7924,7 @@ void ScInterpreter::ScDBCount()
SetError(FormulaError::NoValue);
return;
}
- ScDBQueryDataIterator aValIter( pDok, mrContext, std::move(pQueryParam));
+ ScDBQueryDataIterator aValIter( &mrDoc, mrContext, std::move(pQueryParam));
ScDBQueryDataIterator::Value aValue;
if ( aValIter.GetFirst(aValue) && aValue.mnError == FormulaError::NONE )
{
@@ -7955,7 +7955,7 @@ void ScInterpreter::ScDBCount2()
}
sal_uLong nCount = 0;
pQueryParam->mbSkipString = false;
- ScDBQueryDataIterator aValIter( pDok, mrContext, std::move(pQueryParam));
+ ScDBQueryDataIterator aValIter( &mrDoc, mrContext, std::move(pQueryParam));
ScDBQueryDataIterator::Value aValue;
if ( aValIter.GetFirst(aValue) && aValue.mnError == FormulaError::NONE )
{
@@ -8009,7 +8009,7 @@ void ScInterpreter::GetDBStVarParams( double& rVal, double& rValCount )
SetError(FormulaError::NoValue);
return;
}
- ScDBQueryDataIterator aValIter(pDok, mrContext, std::move(pQueryParam));
+ ScDBQueryDataIterator aValIter(&mrDoc, mrContext, std::move(pQueryParam));
ScDBQueryDataIterator::Value aValue;
if (aValIter.GetFirst(aValue) && aValue.mnError == FormulaError::NONE)
{
@@ -8072,7 +8072,7 @@ void ScInterpreter::ScIndirect()
FormulaGrammar::AddressConvention eConv = maCalcConfig.meStringRefAddressSyntax;
if (eConv == FormulaGrammar::CONV_UNSPECIFIED)
// Use the current address syntax if unspecified.
- eConv = pDok->GetAddressConvention();
+ eConv = mrDoc.GetAddressConvention();
// either CONV_A1_XL_A1 was explicitly configured, or it wasn't possible
// to determine which syntax to use during doc import
@@ -8092,8 +8092,8 @@ void ScInterpreter::ScIndirect()
OUString sRefStr = GetString().getString();
ScRefAddress aRefAd, aRefAd2;
ScAddress::ExternalInfo aExtInfo;
- if ( ConvertDoubleRef(pDok, sRefStr, nTab, aRefAd, aRefAd2, aDetails, &aExtInfo) ||
- ( bTryXlA1 && ConvertDoubleRef(pDok, sRefStr, nTab, aRefAd,
+ if ( ConvertDoubleRef(&mrDoc, sRefStr, nTab, aRefAd, aRefAd2, aDetails, &aExtInfo) ||
+ ( bTryXlA1 && ConvertDoubleRef(&mrDoc, sRefStr, nTab, aRefAd,
aRefAd2, aDetailsXlA1, &aExtInfo) ) )
{
if (aExtInfo.mbExternal)
@@ -8106,8 +8106,8 @@ void ScInterpreter::ScIndirect()
else
PushDoubleRef( aRefAd, aRefAd2);
}
- else if ( ConvertSingleRef(pDok, sRefStr, nTab, aRefAd, aDetails, &aExtInfo) ||
- ( bTryXlA1 && ConvertSingleRef (pDok, sRefStr, nTab, aRefAd,
+ else if ( ConvertSingleRef(&mrDoc, sRefStr, nTab, aRefAd, aDetails, &aExtInfo) ||
+ ( bTryXlA1 && ConvertSingleRef (&mrDoc, sRefStr, nTab, aRefAd,
aDetailsXlA1, &aExtInfo) ) )
{
if (aExtInfo.mbExternal)
@@ -8122,7 +8122,7 @@ void ScInterpreter::ScIndirect()
{
do
{
- ScRangeData* pData = ScRangeStringConverter::GetRangeDataFromString(sRefStr, nTab, pDok);
+ ScRangeData* pData = ScRangeStringConverter::GetRangeDataFromString(sRefStr, nTab, &mrDoc);
if (!pData)
break;
@@ -8152,7 +8152,7 @@ void ScInterpreter::ScIndirect()
do
{
OUString aName( ScGlobal::getCharClassPtr()->uppercase( sRefStr));
- ScDBCollection::NamedDBs& rDBs = pDok->GetDBCollection()->getNamedDBs();
+ ScDBCollection::NamedDBs& rDBs = mrDoc.GetDBCollection()->getNamedDBs();
const ScDBData* pData = rDBs.findByUpperName( aName);
if (!pData)
break;
@@ -8193,7 +8193,7 @@ void ScInterpreter::ScIndirect()
{
do
{
- ScCompiler aComp( pDok, aPos, pDok->GetGrammar());
+ ScCompiler aComp( &mrDoc, aPos, mrDoc.GetGrammar());
aComp.SetRefConvention( eConv); // must be after grammar
std::unique_ptr<ScTokenArray> pTokArr( aComp.CompileString( sRefStr));
@@ -8253,7 +8253,7 @@ void ScInterpreter::ScAddressFunc()
// that, and if it is unspecified then the document's address syntax.
FormulaGrammar::AddressConvention eForceConv = maCalcConfig.meStringRefAddressSyntax;
if (eForceConv == FormulaGrammar::CONV_UNSPECIFIED)
- eForceConv = pDok->GetAddressConvention();
+ eForceConv = mrDoc.GetAddressConvention();
if (eForceConv == FormulaGrammar::CONV_XL_A1 || eForceConv == FormulaGrammar::CONV_XL_R1C1)
eConv = FormulaGrammar::CONV_XL_A1; // for anything Excel use Excel A1
}
@@ -8294,7 +8294,7 @@ void ScInterpreter::ScAddressFunc()
--nCol;
--nRow;
- if (nGlobalError != FormulaError::NONE || !pDok->ValidCol( nCol) || !pDok->ValidRow( nRow))
+ if (nGlobalError != FormulaError::NONE || !mrDoc.ValidCol( nCol) || !mrDoc.ValidRow( nRow))
{
PushIllegalArgument();
return;
@@ -8302,7 +8302,7 @@ void ScInterpreter::ScAddressFunc()
const ScAddress::Details aDetails( eConv, aPos );
const ScAddress aAdr( nCol, nRow, 0);
- OUString aRefStr(aAdr.Format(nFlags, pDok, aDetails));
+ OUString aRefStr(aAdr.Format(nFlags, &mrDoc, aDetails));
if( nParamCount >= 5 && !sTabStr.isEmpty() )
{
@@ -8390,7 +8390,7 @@ void ScInterpreter::ScOffset()
{
nCol1 = static_cast<SCCOL>(static_cast<long>(nCol1) + nColPlus);
nRow1 = static_cast<SCROW>(static_cast<long>(nRow1) + nRowPlus);
- if (!pDok->ValidCol(nCol1) || !pDok->ValidRow(nRow1))
+ if (!mrDoc.ValidCol(nCol1) || !mrDoc.ValidRow(nRow1))
PushIllegalArgument();
else
PushSingleRef(nCol1, nRow1, nTab1);
@@ -8401,8 +8401,8 @@ void ScInterpreter::ScOffset()
nRow1 = static_cast<SCROW>(static_cast<long>(nRow1)+nRowPlus);
nCol2 = static_cast<SCCOL>(static_cast<long>(nCol1)+nColNew-1);
nRow2 = static_cast<SCROW>(static_cast<long>(nRow1)+nRowNew-1);
- if (!pDok->ValidCol(nCol1) || !pDok->ValidRow(nRow1) ||
- !pDok->ValidCol(nCol2) || !pDok->ValidRow(nRow2))
+ if (!mrDoc.ValidCol(nCol1) || !mrDoc.ValidRow(nRow1) ||
+ !mrDoc.ValidCol(nCol2) || !mrDoc.ValidRow(nRow2))
PushIllegalArgument();
else
PushDoubleRef(nCol1, nRow1, nTab1, nCol2, nRow2, nTab1);
@@ -8415,7 +8415,7 @@ void ScInterpreter::ScOffset()
OUString aTabName;
ScSingleRefData aRef;
PopExternalSingleRef(nFileId, aTabName, aRef);
- ScAddress aAbsRef = aRef.toAbs(pDok, aPos);
+ ScAddress aAbsRef = aRef.toAbs(&mrDoc, aPos);
nCol1 = aAbsRef.Col();
nRow1 = aAbsRef.Row();
nTab1 = aAbsRef.Tab();
@@ -8424,7 +8424,7 @@ void ScInterpreter::ScOffset()
{
nCol1 = static_cast<SCCOL>(static_cast<long>(nCol1) + nColPlus);
nRow1 = static_cast<SCROW>(static_cast<long>(nRow1) + nRowPlus);
- if (!pDok->ValidCol(nCol1) || !pDok->ValidRow(nRow1))
+ if (!mrDoc.ValidCol(nCol1) || !mrDoc.ValidRow(nRow1))
PushIllegalArgument();
else
PushExternalSingleRef(nFileId, aTabName, nCol1, nRow1, nTab1);
@@ -8436,8 +8436,8 @@ void ScInterpreter::ScOffset()
nCol2 = static_cast<SCCOL>(static_cast<long>(nCol1)+nColNew-1);
nRow2 = static_cast<SCROW>(static_cast<long>(nRow1)+nRowNew-1);
nTab2 = nTab1;
- if (!pDok->ValidCol(nCol1) || !pDok->ValidRow(nRow1) ||
- !pDok->ValidCol(nCol2) || !pDok->ValidRow(nRow2))
+ if (!mrDoc.ValidCol(nCol1) || !mrDoc.ValidRow(nRow1) ||
+ !mrDoc.ValidCol(nCol2) || !mrDoc.ValidRow(nRow2))
PushIllegalArgument();
else
PushExternalDoubleRef(nFileId, aTabName, nCol1, nRow1, nTab1, nCol2, nRow2, nTab2);
@@ -8455,8 +8455,8 @@ void ScInterpreter::ScOffset()
nRow1 = static_cast<SCROW>(static_cast<long>(nRow1)+nRowPlus);
nCol2 = static_cast<SCCOL>(static_cast<long>(nCol1)+nColNew-1);
nRow2 = static_cast<SCROW>(static_cast<long>(nRow1)+nRowNew-1);
- if (!pDok->ValidCol(nCol1) || !pDok->ValidRow(nRow1) ||
- !pDok->ValidCol(nCol2) || !pDok->ValidRow(nRow2) || nTab1 != nTab2)
+ if (!mrDoc.ValidCol(nCol1) || !mrDoc.ValidRow(nRow1) ||
+ !mrDoc.ValidCol(nCol2) || !mrDoc.ValidRow(nRow2) || nTab1 != nTab2)
PushIllegalArgument();
else
PushDoubleRef(nCol1, nRow1, nTab1, nCol2, nRow2, nTab1);
@@ -8468,7 +8468,7 @@ void ScInterpreter::ScOffset()
OUString aTabName;
ScComplexRefData aRef;
PopExternalDoubleRef(nFileId, aTabName, aRef);
- ScRange aAbs = aRef.toAbs(pDok, aPos);
+ ScRange aAbs = aRef.toAbs(&mrDoc, aPos);
nCol1 = aAbs.aStart.Col();
nRow1 = aAbs.aStart.Row();
nTab1 = aAbs.aStart.Tab();
@@ -8483,8 +8483,8 @@ void ScInterpreter::ScOffset()
nRow1 = static_cast<SCROW>(static_cast<long>(nRow1)+nRowPlus);
nCol2 = static_cast<SCCOL>(static_cast<long>(nCol1)+nColNew-1);
nRow2 = static_cast<SCROW>(static_cast<long>(nRow1)+nRowNew-1);
- if (!pDok->ValidCol(nCol1) || !pDok->ValidRow(nRow1) ||
- !pDok->ValidCol(nCol2) || !pDok->ValidRow(nRow2) || nTab1 != nTab2)
+ if (!mrDoc.ValidCol(nCol1) || !mrDoc.ValidRow(nRow1) ||
+ !mrDoc.ValidCol(nCol2) || !mrDoc.ValidRow(nRow2) || nTab1 != nTab2)
PushIllegalArgument();
else
PushExternalDoubleRef(nFileId, aTabName, nCol1, nRow1, nTab1, nCol2, nRow2, nTab2);
@@ -9237,7 +9237,7 @@ void ScInterpreter::ScSearchB()
// search aSubStr for asStr
sal_Int32 nPos = 0;
sal_Int32 nEndPos = aSubStr.getLength();
- utl::SearchParam::SearchType eSearchType = DetectSearchType( asStr, pDok );
+ utl::SearchParam::SearchType eSearchType = DetectSearchType( asStr, &mrDoc );
utl::SearchParam sPar( asStr, eSearchType, false, '~', false );
utl::TextSearch sT( sPar, *ScGlobal::getCharClassPtr() );
if ( !sT.SearchForward( aSubStr, &nPos, &nEndPos ) )
@@ -9313,7 +9313,7 @@ void ScInterpreter::ScSearch()
PushNoValue();
else
{
- utl::SearchParam::SearchType eSearchType = DetectSearchType( SearchStr, pDok );
+ utl::SearchParam::SearchType eSearchType = DetectSearchType( SearchStr, &mrDoc );
utl::SearchParam sPar(SearchStr, eSearchType, false, '~', false);
utl::TextSearch sT( sPar, *ScGlobal::getCharClassPtr() );
bool bBool = sT.SearchForward(sStr, &nPos, &nEndPos);
@@ -9618,7 +9618,7 @@ void ScInterpreter::ScText()
OUString aResult;
const Color* pColor = nullptr;
LanguageType eCellLang;
- const ScPatternAttr* pPattern = pDok->GetPattern(
+ const ScPatternAttr* pPattern = mrDoc.GetPattern(
aPos.Col(), aPos.Row(), aPos.Tab() );
if ( pPattern )
eCellLang = pPattern->GetItem( ATTR_LANGUAGE_FORMAT ).GetValue();
@@ -9764,7 +9764,7 @@ FormulaError ScInterpreter::GetErrorType()
{
ScAddress aAdr;
if ( DoubleRefToPosSingleRef( aRange, aAdr ) )
- nErr = pDok->GetErrCode( aAdr );
+ nErr = mrDoc.GetErrCode( aAdr );
else
nErr = nGlobalError;
}
@@ -9782,7 +9782,7 @@ FormulaError ScInterpreter::GetErrorType()
{
ScAddress aAdr;
if ( DoubleRefToPosSingleRef( aRange, aAdr ) )
- nErr = pDok->GetErrCode( aAdr );
+ nErr = mrDoc.GetErrCode( aAdr );
else
nErr = nGlobalError;
}
@@ -9795,7 +9795,7 @@ FormulaError ScInterpreter::GetErrorType()
if ( nGlobalError != FormulaError::NONE )
nErr = nGlobalError;
else
- nErr = pDok->GetErrCode( aAdr );
+ nErr = mrDoc.GetErrCode( aAdr );
}
break;
default:
@@ -10016,12 +10016,12 @@ bool ScInterpreter::LookupQueryWithCache( ScAddress & o_rResultPos,
* direct lookups here. We could even further attribute volatility per
* parameter so it would affect only the lookup range parameter. */
if (!bColumnsMatch || GetVolatileType() != NOT_VOLATILE)
- bFound = lcl_LookupQuery( o_rResultPos, pDok, mrContext, rParam, rEntry);
+ bFound = lcl_LookupQuery( o_rResultPos, &mrDoc, mrContext, rParam, rEntry);
else
{
ScRange aLookupRange( rParam.nCol1, rParam.nRow1, rParam.nTab,
rParam.nCol2, rParam.nRow2, rParam.nTab);
- ScLookupCache& rCache = pDok->GetLookupCache( aLookupRange, &mrContext );
+ ScLookupCache& rCache = mrDoc.GetLookupCache( aLookupRange, &mrContext );
ScLookupCache::QueryCriteria aCriteria( rEntry);
ScLookupCache::Result eCacheResult = rCache.lookup( o_rResultPos,
aCriteria, aPos);
@@ -10047,7 +10047,7 @@ bool ScInterpreter::LookupQueryWithCache( ScAddress & o_rResultPos,
{
case ScLookupCache::NOT_CACHED :
case ScLookupCache::CRITERIA_DIFFERENT :
- bFound = lcl_LookupQuery( o_rResultPos, pDok, mrContext, rParam, rEntry);
+ bFound = lcl_LookupQuery( o_rResultPos, &mrDoc, mrContext, rParam, rEntry);
if (eCacheResult == ScLookupCache::NOT_CACHED)
rCache.insert( o_rResultPos, aCriteria, aPos, bFound);
break;
diff --git a/sc/source/core/tool/interpr2.cxx b/sc/source/core/tool/interpr2.cxx
index 5e17d8bf188e..083601458a5d 100644
--- a/sc/source/core/tool/interpr2.cxx
+++ b/sc/source/core/tool/interpr2.cxx
@@ -1341,7 +1341,7 @@ void ScInterpreter::ScNPV()
{
ScAddress aAdr;
PopSingleRef( aAdr );
- ScRefCellValue aCell(*pDok, aAdr);
+ ScRefCellValue aCell(mrDoc, aAdr);
if (!aCell.hasEmptyValue() && aCell.hasNumeric())
{
double fCellVal = GetCellValue(aAdr, aCell);
@@ -1356,7 +1356,7 @@ void ScInterpreter::ScNPV()
FormulaError nErr = FormulaError::NONE;
double fCellVal;
PopDoubleRef( aRange, nParamCount, nRefInList);
- ScHorizontalValueIterator aValIter( pDok, aRange );
+ ScHorizontalValueIterator aValIter( &mrDoc, aRange );
while ((nErr == FormulaError::NONE) && aValIter.GetNext(fCellVal, nErr))
{
fVal += (fCellVal / pow(1.0 + fRate, fCount));
@@ -1446,7 +1446,7 @@ void ScInterpreter::ScIRR()
double fDenom = 0.0;
FormulaError nErr = FormulaError::NONE;
PopDoubleRef( aRange );
- ScValueIterator aValIter(pDok, aRange, mnSubTotalFlags);
+ ScValueIterator aValIter(&mrDoc, aRange, mnSubTotalFlags);
if (aValIter.GetFirst(fValue, nErr))
{
double fCount = 0.0;
@@ -1557,7 +1557,7 @@ void ScInterpreter::ScMIRR()
}
else
{
- ScValueIterator aValIter( pDok, aRange, mnSubTotalFlags );
+ ScValueIterator aValIter( &mrDoc, aRange, mnSubTotalFlags );
double fCellValue;
FormulaError nIterError = FormulaError::NONE;
@@ -2465,12 +2465,12 @@ void ScInterpreter::ScIntersect()
ScRefList* pRefList = xRes->GetRefList();
for (const auto& rRef1 : *x1->GetRefList())
{
- const ScAddress& r11 = rRef1.Ref1.toAbs(pDok, aPos);
- const ScAddress& r12 = rRef1.Ref2.toAbs(pDok, aPos);
+ const ScAddress& r11 = rRef1.Ref1.toAbs(&mrDoc, aPos);
+ const ScAddress& r12 = rRef1.Ref2.toAbs(&mrDoc, aPos);
for (const auto& rRef2 : *x2->GetRefList())
{
- const ScAddress& r21 = rRef2.Ref1.toAbs(pDok, aPos);
- const ScAddress& r22 = rRef2.Ref2.toAbs(pDok, aPos);
+ const ScAddress& r21 = rRef2.Ref1.toAbs(&mrDoc, aPos);
+ const ScAddress& r22 = rRef2.Ref2.toAbs(&mrDoc, aPos);
SCCOL nCol1 = ::std::max( r11.Col(), r21.Col());
SCROW nRow1 = ::std::max( r11.Row(), r21.Row());
SCTAB nTab1 = ::std::max( r11.Tab(), r21.Tab());
@@ -2494,9 +2494,9 @@ void ScInterpreter::ScIntersect()
{
const ScComplexRefData& rRef = (*pRefList)[0];
if (rRef.Ref1 == rRef.Ref2)
- PushTempToken( new ScSingleRefToken(pDok->GetSheetLimits(), rRef.Ref1));
+ PushTempToken( new ScSingleRefToken(mrDoc.GetSheetLimits(), rRef.Ref1));
else
- PushTempToken( new ScDoubleRefToken(pDok->GetSheetLimits(), rRef));
+ PushTempToken( new ScDoubleRefToken(mrDoc.GetSheetLimits(), rRef));
}
else
PushTokenRef( xRes);
@@ -2516,14 +2516,14 @@ void ScInterpreter::ScIntersect()
case svDoubleRef:
{
{
- const ScAddress& r = pt[i]->GetSingleRef()->toAbs(pDok, aPos);
+ const ScAddress& r = pt[i]->GetSingleRef()->toAbs(&mrDoc, aPos);
nC1[i] = r.Col();
nR1[i] = r.Row();
nT1[i] = r.Tab();
}
if (sv[i] == svDoubleRef)
{
- const ScAddress& r = pt[i]->GetSingleRef2()->toAbs(pDok, aPos);
+ const ScAddress& r = pt[i]->GetSingleRef2()->toAbs(&mrDoc, aPos);
nC2[i] = r.Col();
nR2[i] = r.Row();
nT2[i] = r.Tab();
@@ -2568,7 +2568,7 @@ void ScInterpreter::ScRangeFunc()
// We explicitly tell extendRangeReference() to not reuse the token,
// casting const away spares two clones.
FormulaTokenRef xRes = extendRangeReference(
- pDok->GetSheetLimits(), const_cast<FormulaToken&>(*x1), const_cast<FormulaToken&>(*x2), aPos, false);
+ mrDoc.GetSheetLimits(), const_cast<FormulaToken&>(*x1), const_cast<FormulaToken&>(*x2), aPos, false);
if (!xRes)
PushIllegalArgument();
else
@@ -2677,16 +2677,16 @@ void ScInterpreter::ScStyle()
nTimeOut = 0;
// Execute request to apply template
- if ( !pDok->IsClipOrUndo() )
+ if ( !mrDoc.IsClipOrUndo() )
{
- SfxObjectShell* pShell = pDok->GetDocumentShell();
+ SfxObjectShell* pShell = mrDoc.GetDocumentShell();
if (pShell)
{
// notify object shell directly!
bool bNotify = true;
if (aStyle2.isEmpty())
{
- const ScStyleSheet* pStyle = pDok->GetStyle(aPos.Col(), aPos.Row(), aPos.Tab());
+ const ScStyleSheet* pStyle = mrDoc.GetStyle(aPos.Col(), aPos.Row(), aPos.Tab());
if (pStyle && pStyle->GetName() == aStyle1)
bNotify = false;
@@ -2757,7 +2757,7 @@ void ScInterpreter::ScDde()
// temporary documents (ScFunctionAccess) have no DocShell
// and no LinkManager -> abort
- //sfx2::LinkManager* pLinkMgr = pDok->GetLinkManager();
+ //sfx2::LinkManager* pLinkMgr = mrDoc.GetLinkManager();
if (!mpLinkManager)
{
PushNoValue();
@@ -2769,25 +2769,25 @@ void ScInterpreter::ScDde()
// while the link is not evaluated, idle must be disabled (to avoid circular references)
- bool bOldEnabled = pDok->IsIdleEnabled();
- pDok->EnableIdle(false);
+ bool bOldEnabled = mrDoc.IsIdleEnabled();
+ mrDoc.EnableIdle(false);
// Get/ Create link object
ScDdeLink* pLink = lcl_GetDdeLink( mpLinkManager, aAppl, aTopic, aItem, nMode );
//TODO: Save Dde-links (in addition) more efficient at document !!!!!
- // ScDdeLink* pLink = pDok->GetDdeLink( aAppl, aTopic, aItem );
+ // ScDdeLink* pLink = mrDoc.GetDdeLink( aAppl, aTopic, aItem );
bool bWasError = ( pMyFormulaCell && pMyFormulaCell->GetRawError() != FormulaError::NONE );
if (!pLink)
{
- pLink = new ScDdeLink( pDok, aAppl, aTopic, aItem, nMode );
+ pLink = new ScDdeLink( &mrDoc, aAppl, aTopic, aItem, nMode );
mpLinkManager->InsertDDELink( pLink, aAppl, aTopic, aItem );
if ( mpLinkManager->GetLinks().size() == 1 ) // the first one?
{
- SfxBindings* pBindings = pDok->GetViewBindings();
+ SfxBindings* pBindings = mrDoc.GetViewBindings();
if (pBindings)
pBindings->Invalidate( SID_LINKS ); // Link-Manager enabled
}
@@ -2795,7 +2795,7 @@ void ScInterpreter::ScDde()
//if the document was just loaded, but the ScDdeLink entry was missing, then
//don't update this link until the links are updated in response to the users
//decision
- if (!pDok->HasLinkFormulaNeedingCheck())
+ if (!mrDoc.HasLinkFormulaNeedingCheck())
{
//TODO: evaluate asynchron ???
pLink->TryUpdate(); // TryUpdate doesn't call Update multiple times
@@ -2838,7 +2838,7 @@ void ScInterpreter::ScDde()
else
PushNA();
- pDok->EnableIdle(bOldEnabled);
+ mrDoc.EnableIdle(bOldEnabled);
mpLinkManager->CloseCachedComps();
}
@@ -3218,7 +3218,7 @@ void ScInterpreter::ScHyperLink()
if ( !PopDoubleRefOrSingleRef( aAdr ) )
break;
- ScRefCellValue aCell(*pDok, aAdr);
+ ScRefCellValue aCell(mrDoc, aAdr);
if (aCell.hasEmptyValue())
nResultType = ScMatValType::Empty;
else
@@ -3701,7 +3701,7 @@ void ScInterpreter::ScGetPivotData()
// NOTE : MS Excel docs claim to use the 'most recent' which is not
// exactly the same as what we do in ScDocument::GetDPAtBlock
// However we do need to use GetDPABlock
- ScDPObject* pDPObj = pDok->GetDPAtBlock(aBlock);
+ ScDPObject* pDPObj = mrDoc.GetDPAtBlock(aBlock);
if (!pDPObj)
{
PushError(FormulaError::NoRef);
diff --git a/sc/source/core/tool/interpr3.cxx b/sc/source/core/tool/interpr3.cxx
index 0c4bbe9f2ed7..ad850a8ca105 100644
--- a/sc/source/core/tool/interpr3.cxx
+++ b/sc/source/core/tool/interpr3.cxx
@@ -2490,7 +2490,7 @@ void ScInterpreter::ScZTest()
{
ScAddress aAdr;
PopSingleRef( aAdr );
- ScRefCellValue aCell(*pDok, aAdr);
+ ScRefCellValue aCell(mrDoc, aAdr);
if (aCell.hasNumeric())
{
fVal = GetCellValue(aAdr, aCell);
@@ -2510,7 +2510,7 @@ void ScInterpreter::ScZTest()
ScRange aRange;
FormulaError nErr = FormulaError::NONE;
PopDoubleRef( aRange, nParam, nRefInList);
- ScValueIterator aValIter( pDok, aRange, mnSubTotalFlags );
+ ScValueIterator aValIter( &mrDoc, aRange, mnSubTotalFlags );
if (aValIter.GetFirst(fVal, nErr))
{
fSum += fVal;
@@ -2942,7 +2942,7 @@ void ScInterpreter::ScHarMean()
case svSingleRef :
{
PopSingleRef( aAdr );
- ScRefCellValue aCell(*pDok, aAdr);
+ ScRefCellValue aCell(mrDoc, aAdr);
if (aCell.hasNumeric())
{
double x = GetCellValue(aAdr, aCell);
@@ -2962,7 +2962,7 @@ void ScInterpreter::ScHarMean()
FormulaError nErr = FormulaError::NONE;
PopDoubleRef( aRange, nParamCount, nRefInList);
double nCellVal;
- ScValueIterator aValIter( pDok, aRange, mnSubTotalFlags );
+ ScValueIterator aValIter( &mrDoc, aRange, mnSubTotalFlags );
if (aValIter.GetFirst(nCellVal, nErr))
{
if (nCellVal > 0.0)
@@ -3072,7 +3072,7 @@ void ScInterpreter::ScGeoMean()
case svSingleRef :
{
PopSingleRef( aAdr );
- ScRefCellValue aCell(*pDok, aAdr);
+ ScRefCellValue aCell(mrDoc, aAdr);
if (aCell.hasNumeric())
{
double x = GetCellValue(aAdr, aCell);
@@ -3100,7 +3100,7 @@ void ScInterpreter::ScGeoMean()
FormulaError nErr = FormulaError::NONE;
PopDoubleRef( aRange, nParamCount, nRefInList);
double nCellVal;
- ScValueIterator aValIter( pDok, aRange, mnSubTotalFlags );
+ ScValueIterator aValIter(&mrDoc, aRange, mnSubTotalFlags);
if (aValIter.GetFirst(nCellVal, nErr))
{
if (nCellVal > 0.0)
@@ -3251,7 +3251,7 @@ bool ScInterpreter::CalculateSkew(double& fSum,double& fCount,double& vSum,std::
case svSingleRef :
{
PopSingleRef( aAdr );
- ScRefCellValue aCell(*pDok, aAdr);
+ ScRefCellValue aCell(mrDoc, aAdr);
if (aCell.hasNumeric())
{
fVal = GetCellValue(aAdr, aCell);
@@ -3266,7 +3266,7 @@ bool ScInterpreter::CalculateSkew(double& fSum,double& fCount,double& vSum,std::
{
PopDoubleRef( aRange, nParamCount, nRefInList);
FormulaError nErr = FormulaError::NONE;
- ScValueIterator aValIter( pDok, aRange, mnSubTotalFlags );
+ ScValueIterator aValIter( &mrDoc, aRange, mnSubTotalFlags );
if (aValIter.GetFirst(fVal, nErr))
{
fSum += fVal;
@@ -3870,7 +3870,7 @@ std::vector<double> ScInterpreter::GetTopNumberArray( SCSIZE& rCol, SCSIZE& rRow
{
ScAddress aAdr;
PopSingleRef(aAdr);
- ScRefCellValue aCell(*pDok, aAdr);
+ ScRefCellValue aCell(mrDoc, aAdr);
if (aCell.hasNumeric())
{
aArray.push_back(GetCellValue(aAdr, aCell));
@@ -3901,7 +3901,7 @@ std::vector<double> ScInterpreter::GetTopNumberArray( SCSIZE& rCol, SCSIZE& rRow
FormulaError nErr = FormulaError::NONE;
double fCellVal;
- ScValueIterator aValIter(pDok, aRange, mnSubTotalFlags);
+ ScValueIterator aValIter(&mrDoc, aRange, mnSubTotalFlags);
if (aValIter.GetFirst(fCellVal, nErr))
{
do
@@ -3961,7 +3961,7 @@ void ScInterpreter::GetNumberSequenceArray( sal_uInt8 nParamCount, vector<double
case svSingleRef :
{
PopSingleRef( aAdr );
- ScRefCellValue aCell(*pDok, aAdr);
+ ScRefCellValue aCell(mrDoc, aAdr);
if (bIgnoreErrVal && aCell.hasError())
; // nothing
else if (aCell.hasNumeric())
@@ -3982,7 +3982,7 @@ void ScInterpreter::GetNumberSequenceArray( sal_uInt8 nParamCount, vector<double
FormulaError nErr = FormulaError::NONE;
double fCellVal;
- ScValueIterator aValIter( pDok, aRange, mnSubTotalFlags );
+ ScValueIterator aValIter( &mrDoc, aRange, mnSubTotalFlags );
if (aValIter.GetFirst( fCellVal, nErr))
{
if (bIgnoreErrVal)
@@ -4128,7 +4128,7 @@ void ScInterpreter::GetNumberSequenceArray( sal_uInt8 nParamCount, vector<double
void ScInterpreter::GetSortArray( sal_uInt8 nParamCount, vector<double>& rSortArray, vector<long>* pIndexOrder, bool bConvertTextInArray, bool bAllowEmptyArray )
{
GetNumberSequenceArray( nParamCount, rSortArray, bConvertTextInArray );
- if (rSortArray.size() > MAX_COUNT_DOUBLE_FOR_SORT(pDok->GetSheetLimits()))
+ if (rSortArray.size() > MAX_COUNT_DOUBLE_FOR_SORT(mrDoc.GetSheetLimits()))
SetError( FormulaError::MatrixSize);
else if ( rSortArray.empty() )
{
@@ -4306,7 +4306,7 @@ void ScInterpreter::ScAveDev()
case svSingleRef :
{
PopSingleRef( aAdr );
- ScRefCellValue aCell(*pDok, aAdr);
+ ScRefCellValue aCell(mrDoc, aAdr);
if (aCell.hasNumeric())
{
rVal += GetCellValue(aAdr, aCell);
@@ -4320,7 +4320,7 @@ void ScInterpreter::ScAveDev()
FormulaError nErr = FormulaError::NONE;
double nCellVal;
PopDoubleRef( aRange, nParam, nRefInList);
- ScValueIterator aValIter( pDok, aRange, mnSubTotalFlags );
+ ScValueIterator aValIter( &mrDoc, aRange, mnSubTotalFlags );
if (aValIter.GetFirst(nCellVal, nErr))
{
rVal += nCellVal;
@@ -4388,7 +4388,7 @@ void ScInterpreter::ScAveDev()
case svSingleRef :
{
PopSingleRef( aAdr );
- ScRefCellValue aCell(*pDok, aAdr);
+ ScRefCellValue aCell(mrDoc, aAdr);
if (aCell.hasNumeric())
rVal += fabs(GetCellValue(aAdr, aCell) - nMiddle);
}
@@ -4399,7 +4399,7 @@ void ScInterpreter::ScAveDev()
FormulaError nErr = FormulaError::NONE;
double nCellVal;
PopDoubleRef( aRange, nParam, nRefInList);
- ScValueIterator aValIter( pDok, aRange, mnSubTotalFlags );
+ ScValueIterator aValIter( &mrDoc, aRange, mnSubTotalFlags );
if (aValIter.GetFirst(nCellVal, nErr))
{
rVal += (fabs(nCellVal - nMiddle));
diff --git a/sc/source/core/tool/interpr4.cxx b/sc/source/core/tool/interpr4.cxx
index 347377ed0a90..1d5b37fff09b 100644
--- a/sc/source/core/tool/interpr4.cxx
+++ b/sc/source/core/tool/interpr4.cxx
@@ -92,10 +92,10 @@ thread_local bool ScInterpreter::bGlobalStackInUse = false;
void ScInterpreter::ReplaceCell( ScAddress& rPos )
{
- size_t ListSize = pDok->m_TableOpList.size();
+ size_t ListSize = mrDoc.m_TableOpList.size();
for ( size_t i = 0; i < ListSize; ++i )
{
- ScInterpreterTableOpParams *const pTOp = pDok->m_TableOpList[ i ];
+ ScInterpreterTableOpParams *const pTOp = mrDoc.m_TableOpList[ i ];
if ( rPos == pTOp->aOld1 )
{
rPos = pTOp->aNew1;
@@ -115,10 +115,10 @@ bool ScInterpreter::IsTableOpInRange( const ScRange& rRange )
return false; // not considered to be a range in TableOp sense
// we can't replace a single cell in a range
- size_t ListSize = pDok->m_TableOpList.size();
+ size_t ListSize = mrDoc.m_TableOpList.size();
for ( size_t i = 0; i < ListSize; ++i )
{
- ScInterpreterTableOpParams *const pTOp = pDok->m_TableOpList[ i ];
+ ScInterpreterTableOpParams *const pTOp = mrDoc.m_TableOpList[ i ];
if ( rRange.In( pTOp->aOld1 ) )
return true;
if ( rRange.In( pTOp->aOld2 ) )
@@ -133,7 +133,7 @@ sal_uInt32 ScInterpreter::GetCellNumberFormat( const ScAddress& rPos, ScRefCellV
FormulaError nErr;
if (rCell.isEmpty())
{
- nFormat = pDok->GetNumberFormat( mrContext, rPos );
+ nFormat = mrDoc.GetNumberFormat( mrContext, rPos );
nErr = FormulaError::NONE;
}
else
@@ -142,7 +142,7 @@ sal_uInt32 ScInterpreter::GetCellNumberFormat( const ScAddress& rPos, ScRefCellV
nErr = rCell.mpFormula->GetErrCode();
else
nErr = FormulaError::NONE;
- nFormat = pDok->GetNumberFormat( mrContext, rPos );
+ nFormat = mrDoc.GetNumberFormat( mrContext, rPos );
}
SetError(nErr);
@@ -154,8 +154,8 @@ double ScInterpreter::GetValueCellValue( const ScAddress& rPos, double fOrig )
{
if ( bCalcAsShown && fOrig != 0.0 )
{
- sal_uInt32 nFormat = pDok->GetNumberFormat( mrContext, rPos );
- fOrig = pDok->RoundValueAsShown( fOrig, nFormat, &mrContext );
+ sal_uInt32 nFormat = mrDoc.GetNumberFormat( mrContext, rPos );
+ fOrig = mrDoc.RoundValueAsShown( fOrig, nFormat, &mrContext );
}
return fOrig;
}
@@ -206,7 +206,7 @@ double ScInterpreter::GetCellValueOrZero( const ScAddress& rPos, ScRefCellValue&
if (pFCell->IsValue())
{
fValue = pFCell->GetValue();
- pDok->GetNumberFormatInfo( mrContext, nCurFmtType, nCurFmtIndex,
+ mrDoc.GetNumberFormatInfo( mrContext, nCurFmtType, nCurFmtIndex,
rPos );
}
else
@@ -224,10 +224,10 @@ double ScInterpreter::GetCellValueOrZero( const ScAddress& rPos, ScRefCellValue&
case CELLTYPE_VALUE:
{
fValue = rCell.mfValue;
- nCurFmtIndex = pDok->GetNumberFormat( mrContext, rPos );
+ nCurFmtIndex = mrDoc.GetNumberFormat( mrContext, rPos );
nCurFmtType = mrContext.GetNumberFormatType( nCurFmtIndex );
if ( bCalcAsShown && fValue != 0.0 )
- fValue = pDok->RoundValueAsShown( fValue, nCurFmtIndex, &mrContext );
+ fValue = mrDoc.RoundValueAsShown( fValue, nCurFmtIndex, &mrContext );
}
break;
case CELLTYPE_STRING:
@@ -235,7 +235,7 @@ double ScInterpreter::GetCellValueOrZero( const ScAddress& rPos, ScRefCellValue&
{
// SUM(A1:A2) differs from A1+A2. No good. But people insist on
// it ... #i5658#
- OUString aStr = rCell.getString(pDok);
+ OUString aStr = rCell.getString(&mrDoc);
fValue = ConvertStringToValue( aStr );
}
break;
@@ -255,7 +255,7 @@ void ScInterpreter::GetCellString( svl::SharedString& rStr, ScRefCellValue& rCel
{
case CELLTYPE_STRING:
case CELLTYPE_EDIT:
- rStr = mrStrPool.intern(rCell.getString(pDok));
+ rStr = mrStrPool.intern(rCell.getString(&mrDoc));
break;
case CELLTYPE_FORMULA:
{
@@ -316,7 +316,7 @@ bool ScInterpreter::CreateDoubleArr(SCCOL nCol1, SCROW nRow1, SCTAB nTab1,
{
aAdr.SetCol( nCol );
- ScRefCellValue aCell(*pDok, aAdr);
+ ScRefCellValue aCell(mrDoc, aAdr);
if (!aCell.isEmpty())
{
FormulaError nErr = FormulaError::NONE;
@@ -394,7 +394,7 @@ bool ScInterpreter::CreateStringArr(SCCOL nCol1, SCROW nRow1, SCTAB nTab1,
SCCOL nCol = nCol1;
while (nCol <= nCol2)
{
- ScRefCellValue aCell(*pDok, ScAddress(nCol, nRow, nTab));
+ ScRefCellValue aCell(mrDoc, ScAddress(nCol, nRow, nTab));
if (!aCell.isEmpty())
{
OUString aStr;
@@ -404,7 +404,7 @@ bool ScInterpreter::CreateStringArr(SCCOL nCol1, SCROW nRow1, SCTAB nTab1,
{
case CELLTYPE_STRING:
case CELLTYPE_EDIT:
- aStr = aCell.getString(pDok);
+ aStr = aCell.getString(&mrDoc);
break;
case CELLTYPE_FORMULA:
if (!aCell.mpFormula->IsValue())
@@ -495,7 +495,7 @@ bool ScInterpreter::CreateCellArr(SCCOL nCol1, SCROW nRow1, SCTAB nTab1,
while (nCol <= nCol2)
{
aAdr.SetCol( nCol );
- ScRefCellValue aCell(*pDok, aAdr);
+ ScRefCellValue aCell(mrDoc, aAdr);
if (!aCell.isEmpty())
{
FormulaError nErr = FormulaError::NONE;
@@ -507,7 +507,7 @@ bool ScInterpreter::CreateCellArr(SCCOL nCol1, SCROW nRow1, SCTAB nTab1,
{
case CELLTYPE_STRING :
case CELLTYPE_EDIT :
- aStr = aCell.getString(pDok);
+ aStr = aCell.getString(&mrDoc);
nType = 1;
break;
case CELLTYPE_VALUE :
@@ -689,12 +689,12 @@ void ScInterpreter::PushTokenRef( const formula::FormulaConstTokenRef& x )
void ScInterpreter::PushCellResultToken( bool bDisplayEmptyAsString,
const ScAddress & rAddress, SvNumFormatType * pRetTypeExpr, sal_uInt32 * pRetIndexExpr, bool bFinalResult )
{
- ScRefCellValue aCell(*pDok, rAddress);
+ ScRefCellValue aCell(mrDoc, rAddress);
if (aCell.hasEmptyValue())
{
bool bInherited = (aCell.meType == CELLTYPE_FORMULA);
if (pRetTypeExpr && pRetIndexExpr)
- pDok->GetNumberFormatInfo(mrContext, *pRetTypeExpr, *pRetIndexExpr, rAddress);
+ mrDoc.GetNumberFormatInfo(mrContext, *pRetTypeExpr, *pRetIndexExpr, rAddress);
PushTempToken( new ScEmptyCellToken( bInherited, bDisplayEmptyAsString));
return;
}
@@ -880,17 +880,17 @@ void ScInterpreter::SingleRefToVars( const ScSingleRefData & rRef,
else
rTab = rRef.Tab();
- if( !pDok->ValidCol( rCol) || rRef.IsColDeleted() )
+ if( !mrDoc.ValidCol( rCol) || rRef.IsColDeleted() )
{
SetError( FormulaError::NoRef );
rCol = 0;
}
- if( !pDok->ValidRow( rRow) || rRef.IsRowDeleted() )
+ if( !mrDoc.ValidRow( rRow) || rRef.IsRowDeleted() )
{
SetError( FormulaError::NoRef );
rRow = 0;
}
- if( !ValidTab( rTab, pDok->GetTableCount() - 1) || rRef.IsTabDeleted() )
+ if( !ValidTab( rTab, mrDoc.GetTableCount() - 1) || rRef.IsTabDeleted() )
{
SetError( FormulaError::NoRef );
rTab = 0;
@@ -931,7 +931,7 @@ void ScInterpreter::PopSingleRef( ScAddress& rAdr )
SCTAB nTab;
SingleRefToVars( *pRefData, nCol, nRow, nTab);
rAdr.Set( nCol, nRow, nTab );
- if (!pDok->m_TableOpList.empty())
+ if (!mrDoc.m_TableOpList.empty())
ReplaceCell( rAdr );
}
break;
@@ -956,7 +956,7 @@ void ScInterpreter::DoubleRefToVars( const formula::FormulaToken* p,
std::swap( rRow2, rRow1);
if (rTab2 < rTab1)
std::swap( rTab2, rTab1);
- if (!pDok->m_TableOpList.empty())
+ if (!mrDoc.m_TableOpList.empty())
{
ScRange aRange( rCol1, rRow1, rTab1, rCol2, rRow2, rTab2 );
if ( IsTableOpInRange( aRange ) )
@@ -983,7 +983,7 @@ ScDBRangeBase* ScInterpreter::PopDBDoubleRef()
PopDoubleRef(nCol1, nRow1, nTab1, nCol2, nRow2, nTab2);
if (nGlobalError != FormulaError::NONE)
break;
- return new ScDBInternalRange(pDok,
+ return new ScDBInternalRange(&mrDoc,
ScRange(nCol1, nRow1, nTab1, nCol2, nRow2, nTab2));
}
case svMatrix:
@@ -996,7 +996,7 @@ ScDBRangeBase* ScInterpreter::PopDBDoubleRef()
PopExternalDoubleRef(pMat);
if (nGlobalError != FormulaError::NONE)
break;
- return new ScDBExternalRange(pDok, pMat);
+ return new ScDBExternalRange(&mrDoc, pMat);
}
default:
SetError( FormulaError::IllegalParameter);
@@ -1039,7 +1039,7 @@ void ScInterpreter::DoubleRefToRange( const ScComplexRefData & rCRef,
SingleRefToVars( rCRef.Ref2, nCol, nRow, nTab);
rRange.aEnd.Set( nCol, nRow, nTab );
rRange.PutInOrder();
- if (!pDok->m_TableOpList.empty() && !bDontCheckForTableOp)
+ if (!mrDoc.m_TableOpList.empty() && !bDontCheckForTableOp)
{
if ( IsTableOpInRange( rRange ) )
SetError( FormulaError::IllegalParameter );
@@ -1165,7 +1165,7 @@ void ScInterpreter::PopExternalSingleRef(
if (nGlobalError != FormulaError::NONE)
return;
- ScExternalRefManager* pRefMgr = pDok->GetExternalRefManager();
+ ScExternalRefManager* pRefMgr = mrDoc.GetExternalRefManager();
const OUString* pFile = pRefMgr->getExternalFileName(rFileId);
if (!pFile)
{
@@ -1180,7 +1180,7 @@ void ScInterpreter::PopExternalSingleRef(
return;
}
- ScAddress aAddr = rRef.toAbs(pDok, aPos);
+ ScAddress aAddr = rRef.toAbs(&mrDoc, aPos);
ScExternalRefCache::CellFormat aFmt;
ScExternalRefCache::TokenRef xNew = pRefMgr->getSingleRefToken(
rFileId, rTabName, aAddr, &aPos, nullptr, &aFmt);
@@ -1266,7 +1266,7 @@ void ScInterpreter::PopExternalDoubleRef(ScMatrixRef& rMat)
void ScInterpreter::GetExternalDoubleRef(
sal_uInt16 nFileId, const OUString& rTabName, const ScComplexRefData& rData, ScExternalRefCache::TokenArrayRef& rArray)
{
- ScExternalRefManager* pRefMgr = pDok->GetExternalRefManager();
+ ScExternalRefManager* pRefMgr = mrDoc.GetExternalRefManager();
const OUString* pFile = pRefMgr->getExternalFileName(nFileId);
if (!pFile)
{
@@ -1281,8 +1281,8 @@ void ScInterpreter::GetExternalDoubleRef(
}
ScComplexRefData aData(rData);
- ScRange aRange = aData.toAbs(pDok, aPos);
- if (!pDok->ValidColRow(aRange.aStart.Col(), aRange.aStart.Row()) || !pDok->ValidColRow(aRange.aEnd.Col(), aRange.aEnd.Row()))
+ ScRange aRange = aData.toAbs(&mrDoc, aPos);
+ if (!mrDoc.ValidColRow(aRange.aStart.Col(), aRange.aStart.Row()) || !mrDoc.ValidColRow(aRange.aEnd.Col(), aRange.aEnd.Row()))
{
SetError(FormulaError::NoRef);
return;
@@ -1369,7 +1369,7 @@ void ScInterpreter::PopRefListPushMatrixOrRef()
if (nEntries == 1)
{
--sp;
- PushTempTokenWithoutError( new ScDoubleRefToken( pDok->GetSheetLimits(), (*pv)[0] ));
+ PushTempTokenWithoutError( new ScDoubleRefToken( mrDoc.GetSheetLimits(), (*pv)[0] ));
}
else if (bMatrixFormula)
{
@@ -1391,13 +1391,13 @@ void ScInterpreter::PopRefListPushMatrixOrRef()
if (nGlobalError == FormulaError::NONE)
{
ScAddress aAdr( nCol, nRow, nTab);
- ScRefCellValue aCell( *pDok, aAdr);
+ ScRefCellValue aCell(mrDoc, aAdr);
if (aCell.hasError())
xMat->PutError( aCell.mpFormula->GetErrCode(), 0, i);
else if (aCell.hasEmptyValue())
xMat->PutEmpty( 0, i);
else if (aCell.hasString())
- xMat->PutString( mrStrPool.intern( aCell.getString( pDok)), 0, i);
+ xMat->PutString( mrStrPool.intern( aCell.getString(&mrDoc)), 0, i);
else
xMat->PutDouble( aCell.getValue(), 0, i);
}
@@ -1791,7 +1791,7 @@ void ScInterpreter::PushStringBuffer( const sal_Unicode* pString )
{
if ( pString )
{
- svl::SharedString aSS = pDok->GetSharedStringPool().intern(OUString(pString));
+ svl::SharedString aSS = mrDoc.GetSharedStringPool().intern(OUString(pString));
PushString(aSS);
}
else
@@ -1800,7 +1800,7 @@ void ScInterpreter::PushStringBuffer( const sal_Unicode* pString )
void ScInterpreter::PushString( const OUString& rStr )
{
- PushString(pDok->GetSharedStringPool().intern(rStr));
+ PushString(mrDoc.GetSharedStringPool().intern(rStr));
}
void ScInterpreter::PushString( const svl::SharedString& rString )
@@ -1815,7 +1815,7 @@ void ScInterpreter::PushSingleRef(SCCOL nCol, SCROW nRow, SCTAB nTab)
{
ScSingleRefData aRef;
aRef.InitAddress(ScAddress(nCol,nRow,nTab));
- PushTempTokenWithoutError( new ScSingleRefToken( pDok->GetSheetLimits(), aRef ) );
+ PushTempTokenWithoutError( new ScSingleRefToken( mrDoc.GetSheetLimits(), aRef ) );
}
}
@@ -1826,7 +1826,7 @@ void ScInterpreter::PushDoubleRef(SCCOL nCol1, SCROW nRow1, SCTAB nTab1,
{
ScComplexRefData aRef;
aRef.InitRange(ScRange(nCol1,nRow1,nTab1,nCol2,nRow2,nTab2));
- PushTempTokenWithoutError( new ScDoubleRefToken( pDok->GetSheetLimits(), aRef ) );
+ PushTempTokenWithoutError( new ScDoubleRefToken( mrDoc.GetSheetLimits(), aRef ) );
}
}
@@ -1838,7 +1838,7 @@ void ScInterpreter::PushExternalSingleRef(
ScSingleRefData aRef;
aRef.InitAddress(ScAddress(nCol,nRow,nTab));
PushTempTokenWithoutError( new ScExternalSingleRefToken(nFileId,
- pDok->GetSharedStringPool().intern( rTabName), aRef)) ;
+ mrDoc.GetSharedStringPool().intern( rTabName), aRef)) ;
}
}
@@ -1851,7 +1851,7 @@ void ScInterpreter::PushExternalDoubleRef(
ScComplexRefData aRef;
aRef.InitRange(ScRange(nCol1,nRow1,nTab1,nCol2,nRow2,nTab2));
PushTempTokenWithoutError( new ScExternalDoubleRefToken(nFileId,
- pDok->GetSharedStringPool().intern( rTabName), aRef) );
+ mrDoc.GetSharedStringPool().intern( rTabName), aRef) );
}
}
@@ -1860,8 +1860,8 @@ void ScInterpreter::PushSingleRef( const ScRefAddress& rRef )
if (!IfErrorPushError())
{
ScSingleRefData aRef;
- aRef.InitFromRefAddress( pDok, rRef, aPos);
- PushTempTokenWithoutError( new ScSingleRefToken( pDok->GetSheetLimits(), aRef ) );
+ aRef.InitFromRefAddress( &mrDoc, rRef, aPos);
+ PushTempTokenWithoutError( new ScSingleRefToken( mrDoc.GetSheetLimits(), aRef ) );
}
}
@@ -1870,8 +1870,8 @@ void ScInterpreter::PushDoubleRef( const ScRefAddress& rRef1, const ScRefAddress
if (!IfErrorPushError())
{
ScComplexRefData aRef;
- aRef.InitFromRefAddresses( pDok, rRef1, rRef2, aPos);
- PushTempTokenWithoutError( new ScDoubleRefToken( pDok->GetSheetLimits(), aRef ) );
+ aRef.InitFromRefAddresses( &mrDoc, rRef1, rRef2, aPos);
+ PushTempTokenWithoutError( new ScDoubleRefToken( mrDoc.GetSheetLimits(), aRef ) );
}
}
@@ -2085,7 +2085,7 @@ double ScInterpreter::GetDouble()
{
ScAddress aAdr;
PopSingleRef( aAdr );
- ScRefCellValue aCell(*pDok, aAdr);
+ ScRefCellValue aCell(mrDoc, aAdr);
nVal = GetCellValue(aAdr, aCell);
}
break;
@@ -2096,7 +2096,7 @@ double ScInterpreter::GetDouble()
ScAddress aAdr;
if ( nGlobalError == FormulaError::NONE && DoubleRefToPosSingleRef( aRange, aAdr ) )
{
- ScRefCellValue aCell(*pDok, aAdr);
+ ScRefCellValue aCell(mrDoc, aAdr);
nVal = GetCellValue(aAdr, aCell);
}
else
@@ -2268,7 +2268,7 @@ bool ScInterpreter::GetDoubleOrString( double& rDouble, svl::SharedString& rStri
rDouble = 0.0;
return true; // caller needs to check nGlobalError
}
- ScRefCellValue aCell( *pDok, aAdr);
+ ScRefCellValue aCell( mrDoc, aAdr);
if (aCell.hasNumeric())
{
rDouble = GetCellValue( aAdr, aCell);
@@ -2330,7 +2330,7 @@ svl::SharedString ScInterpreter::GetString()
PopSingleRef( aAdr );
if (nGlobalError == FormulaError::NONE)
{
- ScRefCellValue aCell(*pDok, aAdr);
+ ScRefCellValue aCell(mrDoc, aAdr);
svl::SharedString aSS;
GetCellString(aSS, aCell);
return aSS;
@@ -2345,7 +2345,7 @@ svl::SharedString ScInterpreter::GetString()
ScAddress aAdr;
if ( nGlobalError == FormulaError::NONE && DoubleRefToPosSingleRef( aRange, aAdr ) )
{
- ScRefCellValue aCell(*pDok, aAdr);
+ ScRefCellValue aCell(mrDoc, aAdr);
svl::SharedString aSS;
GetCellString(aSS, aCell);
return aSS;
@@ -2491,7 +2491,7 @@ void ScInterpreter::ScDBGet()
}
pQueryParam->mbSkipString = false;
- ScDBQueryDataIterator aValIter(pDok, mrContext, std::move(pQueryParam));
+ ScDBQueryDataIterator aValIter(&mrDoc, mrContext, std::move(pQueryParam));
ScDBQueryDataIterator::Value aValue;
if (!aValIter.GetFirst(aValue) || aValue.mnError != FormulaError::NONE)
{
@@ -2673,14 +2673,14 @@ void ScInterpreter::ScExternal()
ScAddInAsync* pAs = ScAddInAsync::Get( nHandle );
if ( !pAs )
{
- pAs = new ScAddInAsync(nHandle, pLegacyFuncData, pDok);
+ pAs = new ScAddInAsync(nHandle, pLegacyFuncData, &mrDoc);
pMyFormulaCell->StartListening( *pAs );
}
else
{
pMyFormulaCell->StartListening( *pAs );
- if ( !pAs->HasDocument( pDok ) )
- pAs->AddDocument( pDok );
+ if ( !pAs->HasDocument( &mrDoc ) )
+ pAs->AddDocument( &mrDoc );
}
if ( pAs->IsValid() )
{
@@ -2729,14 +2729,14 @@ void ScInterpreter::ScExternal()
if ( aCall.NeedsCaller() && GetError() == FormulaError::NONE )
{
- SfxObjectShell* pShell = pDok->GetDocumentShell();
+ SfxObjectShell* pShell = mrDoc.GetDocumentShell();
if (pShell)
aCall.SetCallerFromObjectShell( pShell );
else
{
// use temporary model object (without document) to supply options
aCall.SetCaller( static_cast<beans::XPropertySet*>(
- new ScDocOptionsObj( pDok->GetDocOptions() ) ) );
+ new ScDocOptionsObj( mrDoc.GetDocOptions() ) ) );
}
}
@@ -2796,7 +2796,7 @@ void ScInterpreter::ScExternal()
{
ScRange aRange;
PopDoubleRef( aRange );
- if (!ScRangeToSequence::FillLongArray( aParam, pDok, aRange ))
+ if (!ScRangeToSequence::FillLongArray( aParam, &mrDoc, aRange ))
SetError(FormulaError::IllegalParameter);
}
break;
@@ -2827,7 +2827,7 @@ void ScInterpreter::ScExternal()
{
ScRange aRange;
PopDoubleRef( aRange );
- if (!ScRangeToSequence::FillDoubleArray( aParam, pDok, aRange ))
+ if (!ScRangeToSequence::FillDoubleArray( aParam, &mrDoc, aRange ))
SetError(FormulaError::IllegalParameter);
}
break;
@@ -2858,7 +2858,7 @@ void ScInterpreter::ScExternal()
{
... etc. - the rest is truncated
More information about the Libreoffice-commits
mailing list