Resolves: tdf#83461 do not override MatColsRows if already set

ScMatrixFormulaCellToken::SetMatColsRows() via
ScFormulaCell::SetMatColsRows() is used during document import and
preselected cell area input of an array formula. Do not override
existing values with subsequent result matrix dimensions.

Change-Id: I9e844b5064ea276f3cbcb680eb1127c344328e00
This commit is contained in:
Eike Rathke
2015-02-06 23:32:54 +01:00
parent 78f6e6f7cc
commit e32eff2bb4

View File

@@ -167,7 +167,7 @@ void ScFormulaResult::SetToken( const formula::FormulaToken* p )
{
const ScMatrixFormulaCellToken* pNewMatFormula =
dynamic_cast<const ScMatrixFormulaCellToken*>(pMatResult);
if (pNewMatFormula)
if (pNewMatFormula && (pMatFormula->GetMatCols() <= 0 || pMatFormula->GetMatRows() <= 0))
{
SAL_WARN( "sc", "ScFormulaResult::SetToken: pNewMatFormula and pMatFormula, overriding matrix formula dimension; intended?");
pMatFormula->SetMatColsRows( pNewMatFormula->GetMatCols(),