diff options
author | Eike Rathke <erack@redhat.com> | 2018-07-17 16:49:39 +0200 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2018-07-18 11:12:09 +0200 |
commit | 6db5e1bdd67531fab14b375d6c624237d38de297 (patch) | |
tree | bfc5726d67bd3c28c6bbdef0de470778e030e347 | |
parent | 7d2668517b68f9a7f056a993e53b4dd80838a4f9 (diff) |
Related: tdf#117016 DoubleRefToVars: always put in order
... as all callers expect, whatever dynamic range creating process
may have created it.
Change-Id: I47b2e174d5bf4d5c23f10685526b48eee07dd6a4
Reviewed-on: https://gerrit.libreoffice.org/57567
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins
-rw-r--r-- | sc/source/core/tool/interpr4.cxx | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/sc/source/core/tool/interpr4.cxx b/sc/source/core/tool/interpr4.cxx index 138ee8c14f1b..4d836828eeba 100644 --- a/sc/source/core/tool/interpr4.cxx +++ b/sc/source/core/tool/interpr4.cxx @@ -949,6 +949,12 @@ void ScInterpreter::DoubleRefToVars( const formula::FormulaToken* p, const ScComplexRefData& rCRef = *p->GetDoubleRef(); SingleRefToVars( rCRef.Ref1, rCol1, rRow1, rTab1); SingleRefToVars( rCRef.Ref2, rCol2, rRow2, rTab2); + if (rCol2 < rCol1) + std::swap( rCol2, rCol1); + if (rRow2 < rRow1) + std::swap( rRow2, rRow1); + if (rTab2 < rTab1) + std::swap( rTab2, rTab1); if (!pDok->m_TableOpList.empty()) { ScRange aRange( rCol1, rRow1, rTab1, rCol2, rRow2, rTab2 ); |