summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2022-06-06 14:34:34 +0200
committerXisco Fauli <xiscofauli@libreoffice.org>2022-06-07 19:22:35 +0200
commitea91f8f9b1bccce73a22af8b4c1626ccb834b9d1 (patch)
tree8dec1fe49d81fa24cc0b411f4d051a809b0258eb /sc
parentb545b6b2bf7e56047211ea4ec974054a522cc2e9 (diff)
Resolves: tdf#148163 Preserve names of bad cell reference input again
A regression of commit e247262327d04ad9933f4af354050f4420c6e303 CommitDate: Tue Jul 30 23:49:55 2013 -0400 More on avoiding direct access to data members. that changed, for example, invalid sheet references - aRef.nTab = MAXTAB+3; + aRef.SetTabDeleted(true); The then following commit 8a19af57bbcc57a02a7d87c6408d1e3212a6deba CommitDate: Tue Jul 30 23:50:03 2013 -0400 Now nobody accesses reference members directly. Make them private. changed ScSingleRefData::Valid() - return nCol >= 0 && nCol <= MAXCOL && - nRow >= 0 && nRow <= MAXROW && - nTab >= 0 && nTab <= MAXTAB; + return ColValid() && RowValid() && TabValid(); without taking the deleted flags into account, where previous to commit e247262327d04ad9933f4af354050f4420c6e303 nTab > MAXTAB fulfilled the condition of not valid. This makes it necessary to adjust the TestFormula::testFuncRangeOp() test case that relied on the broken behaviour. Change-Id: I42e769ca0d56a2eb786bb6f65917f0c15d082763 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135453 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins (cherry picked from commit 104596d005b32bd2bba15554e8c9ae740327aa46) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135379 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Diffstat (limited to 'sc')
-rw-r--r--sc/qa/unit/ucalc_formula.cxx4
-rw-r--r--sc/source/core/tool/refdata.cxx2
2 files changed, 3 insertions, 3 deletions
diff --git a/sc/qa/unit/ucalc_formula.cxx b/sc/qa/unit/ucalc_formula.cxx
index 551834284f76..dce22b2c25a4 100644
--- a/sc/qa/unit/ucalc_formula.cxx
+++ b/sc/qa/unit/ucalc_formula.cxx
@@ -7363,8 +7363,8 @@ void TestFormula::testFuncRangeOp()
// have to be adapted.
aPos.IncRow();
m_pDoc->SetString( aPos, "=SUM(B1:Sheet2.B2:Sheet3.B3)");
- ASSERT_FORMULA_EQUAL(*m_pDoc, aPos, "SUM(#REF!.B2:#REF!.B3)", "Wrong formula.");
- CPPUNIT_ASSERT_EQUAL( OUString("#REF!"), m_pDoc->GetString(aPos));
+ ASSERT_FORMULA_EQUAL(*m_pDoc, aPos, "SUM(b1:sheet2.b2:Sheet3.B3)", "Wrong formula.");
+ CPPUNIT_ASSERT_EQUAL( OUString("#NAME?"), m_pDoc->GetString(aPos));
aPos.IncRow();
m_pDoc->SetString( aPos, "=SUM(Sheet1.B1:Sheet3.B2:Sheet2.B3)");
diff --git a/sc/source/core/tool/refdata.cxx b/sc/source/core/tool/refdata.cxx
index 59a224dbcfbd..9cdadc57da10 100644
--- a/sc/source/core/tool/refdata.cxx
+++ b/sc/source/core/tool/refdata.cxx
@@ -129,7 +129,7 @@ bool ScSingleRefData::IsDeleted() const
bool ScSingleRefData::Valid(const ScDocument& rDoc) const
{
- return ColValid(rDoc) && RowValid(rDoc) && TabValid();
+ return !IsDeleted() && ColValid(rDoc) && RowValid(rDoc) && TabValid();
}
bool ScSingleRefData::ColValid(const ScDocument& rDoc) const