sc/source/core/inc/interpre.hxx | 2 -- sc/source/core/tool/interpr4.cxx | 36 +++++++++++++++--------------------- sc/source/core/tool/interpr5.cxx | 9 +++++---- 3 files changed, 20 insertions(+), 27 deletions(-)
New commits: commit d57461b25cc13be7991fa3bc275c5f29385a0e72 Author: Kohei Yoshida <kohei.yosh...@gmail.com> Date: Thu Mar 28 13:50:51 2013 -0400 ScInterpreter is now free of ScBaseCell. Hooray! \o/ Change-Id: I00617da47485e751f6aba41ab382220ad05eb9b6 diff --git a/sc/source/core/inc/interpre.hxx b/sc/source/core/inc/interpre.hxx index c565e47..c4845f0 100644 --- a/sc/source/core/inc/interpre.hxx +++ b/sc/source/core/inc/interpre.hxx @@ -35,7 +35,6 @@ class ScDocument; class SbxVariable; -class ScBaseCell; class ScValueCell; class ScFormulaCell; class SvNumberFormatter; @@ -190,7 +189,6 @@ double ConvertStringToValue( const String& ); double GetCellValue( const ScAddress&, ScRefCellValue& rCell ); double GetCellValueOrZero( const ScAddress&, ScRefCellValue& rCell ); double GetValueCellValue( const ScAddress&, double fOrig ); -ScBaseCell* GetCell( const ScAddress& rPos ); void GetCellString( OUString& rStr, ScRefCellValue& rCell ); sal_uInt16 GetCellErrCode( const ScRefCellValue& rCell ); diff --git a/sc/source/core/tool/interpr4.cxx b/sc/source/core/tool/interpr4.cxx index e624c89..fe05654 100644 --- a/sc/source/core/tool/interpr4.cxx +++ b/sc/source/core/tool/interpr4.cxx @@ -510,11 +510,6 @@ double ScInterpreter::GetCellValueOrZero( const ScAddress& rPos, ScRefCellValue& return fValue; } -ScBaseCell* ScInterpreter::GetCell( const ScAddress& rPos ) -{ - return pDok->GetCell( rPos ); -} - void ScInterpreter::GetCellString( OUString& rStr, ScRefCellValue& rCell ) { sal_uInt16 nErr = 0; @@ -678,26 +673,24 @@ bool ScInterpreter::CreateStringArr(SCCOL nCol1, SCROW nRow1, SCTAB nTab1, SCCOL nCol = nCol1; while (nCol <= nCol2) { - ScBaseCell* pCell; - pDok->GetCell(nCol, nRow, nTab, pCell); - if (pCell) + ScRefCellValue aCell; + aCell.assign(*pDok, ScAddress(nCol, nRow, nTab)); + if (!aCell.isEmpty()) { String aStr; sal_uInt16 nErr = 0; bool bOk = true; - switch ( pCell->GetCellType() ) + switch (aCell.meType) { - case CELLTYPE_STRING : - aStr = ((ScStringCell*)pCell)->GetString(); - break; - case CELLTYPE_EDIT : - aStr = ((ScEditCell*)pCell)->GetString(); + case CELLTYPE_STRING: + case CELLTYPE_EDIT: + aStr = aCell.getString(); break; - case CELLTYPE_FORMULA : - if (!((ScFormulaCell*)pCell)->IsValue()) + case CELLTYPE_FORMULA: + if (!aCell.mpFormula->IsValue()) { - nErr = ((ScFormulaCell*)pCell)->GetErrCode(); - aStr = ((ScFormulaCell*)pCell)->GetString(); + nErr = aCell.mpFormula->GetErrCode(); + aStr = aCell.mpFormula->GetString(); } else bOk = false; @@ -3527,9 +3520,10 @@ void ScInterpreter::ScTableOp() iBroadcast != pTableOp->aNotifiedFormulaPos.end(); ++iBroadcast ) { // emulate broadcast and indirectly collect cell pointers - ScBaseCell* pCell = pDok->GetCell( *iBroadcast ); - if ( pCell && pCell->GetCellType() == CELLTYPE_FORMULA ) - ((ScFormulaCell*)pCell)->SetTableOpDirty(); + ScRefCellValue aCell; + aCell.assign(*pDok, *iBroadcast); + if (aCell.meType == CELLTYPE_FORMULA) + aCell.mpFormula->SetTableOpDirty(); } } else diff --git a/sc/source/core/tool/interpr5.cxx b/sc/source/core/tool/interpr5.cxx index 09196d9..7dc9b57 100644 --- a/sc/source/core/tool/interpr5.cxx +++ b/sc/source/core/tool/interpr5.cxx @@ -635,15 +635,16 @@ void ScInterpreter::ScMatValue() { ScAddress aAdr; PopSingleRef( aAdr ); - ScBaseCell* pCell = GetCell( aAdr ); - if (pCell && pCell->GetCellType() == CELLTYPE_FORMULA) + ScRefCellValue aCell; + aCell.assign(*pDok, aAdr); + if (aCell.meType == CELLTYPE_FORMULA) { - sal_uInt16 nErrCode = ((ScFormulaCell*)pCell)->GetErrCode(); + sal_uInt16 nErrCode = aCell.mpFormula->GetErrCode(); if (nErrCode != 0) PushError( nErrCode); else { - const ScMatrix* pMat = ((ScFormulaCell*)pCell)->GetMatrix(); + const ScMatrix* pMat = aCell.mpFormula->GetMatrix(); CalculateMatrixValue(pMat,nC,nR); } } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits