compilerplugins/clang/constantparam.numbers.results |    8 ----
 sc/inc/tokenarray.hxx                               |    1 
 sc/source/core/tool/token.cxx                       |   35 --------------------
 sc/source/filter/excel/excform.cxx                  |    9 +----
 4 files changed, 2 insertions(+), 51 deletions(-)

New commits:
commit 7d5703ca50d719fbd82615fb81da7949fe163ae5
Author:     László Németh <nem...@numbertext.org>
AuthorDate: Mon Oct 25 15:09:10 2021 +0200
Commit:     László Németh <nem...@numbertext.org>
CommitDate: Tue Oct 26 09:51:17 2021 +0200

    tdf#142010 XLS import: fix bad calculation after editing
    
    Inserting a column messed up formulas in the test
    document of tdf#142010. This was a regression
    resulted by the tdf#89281 fix for a performance
    regression in XLS import related to shared formulas.
    
    Revert of commit ba686b9bd2596811141e4028947334f10799c356
    "tdf#89281 fix performance regression of XLS import - cleanup"
    and commit b18b5b7edf3d14ef5f0efe53e367f88a423088c4
    "tdf#89281 fix performance regression of XLS import".
    
    Change-Id: I96636fb1d84939385efbe7054a4271ff10b88907
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124151
    Tested-by: László Németh <nem...@numbertext.org>
    Reviewed-by: László Németh <nem...@numbertext.org>

diff --git a/compilerplugins/clang/constantparam.numbers.results 
b/compilerplugins/clang/constantparam.numbers.results
index faa5ad0485a6..34a32601044d 100644
--- a/compilerplugins/clang/constantparam.numbers.results
+++ b/compilerplugins/clang/constantparam.numbers.results
@@ -1946,14 +1946,6 @@ sc/inc/tokenarray.hxx:261
     void ScTokenArray::WrapReference(const class ScAddress &,short,int)
     int nMaxRow
     65535
-sc/inc/tokenarray.hxx:262
-    _Bool ScTokenArray::NeedsWrapReference(const class ScAddress &,short,int) 
const
-    short nMaxCol
-    255
-sc/inc/tokenarray.hxx:262
-    _Bool ScTokenArray::NeedsWrapReference(const class ScAddress &,short,int) 
const
-    int nMaxRow
-    65535
 sc/inc/zforauto.hxx:38
     void ScNumFormatAbbrev::Save(class SvStream &,unsigned short) const
     unsigned short eByteStrSet
diff --git a/sc/inc/tokenarray.hxx b/sc/inc/tokenarray.hxx
index 0592521901b3..997aa0e9d8f7 100644
--- a/sc/inc/tokenarray.hxx
+++ b/sc/inc/tokenarray.hxx
@@ -262,7 +262,6 @@ public:
     OUString CreateString( sc::TokenStringContext& rCxt, const ScAddress& rPos 
) const;
 
     void WrapReference( const ScAddress& rPos, SCCOL nMaxCol, SCROW nMaxRow );
-    bool NeedsWrapReference( const ScAddress& rPos, SCCOL nMaxCol, SCROW 
nMaxRow ) const;
 
     sal_Int32 GetWeight() const;
 
diff --git a/sc/source/core/tool/token.cxx b/sc/source/core/tool/token.cxx
index 9fc32499731d..114bf4107609 100644
--- a/sc/source/core/tool/token.cxx
+++ b/sc/source/core/tool/token.cxx
@@ -5321,41 +5321,6 @@ void ScTokenArray::WrapReference( const ScAddress& rPos, 
SCCOL nMaxCol, SCROW nM
     }
 }
 
-bool ScTokenArray::NeedsWrapReference( const ScAddress& rPos, SCCOL nMaxCol, 
SCROW nMaxRow ) const
-{
-    FormulaToken** p = pCode.get();
-    FormulaToken** pEnd = p + static_cast<size_t>(nLen);
-    for (; p != pEnd; ++p)
-    {
-        switch ((*p)->GetType())
-        {
-            case svSingleRef:
-            {
-                formula::FormulaToken* pToken = *p;
-                ScSingleRefData& rRef = *pToken->GetSingleRef();
-                ScAddress aAbs = rRef.toAbs(*mxSheetLimits, rPos);
-                if (aAbs.Col() > nMaxCol || aAbs.Row() > nMaxRow)
-                   return true;
-            }
-            break;
-            case svDoubleRef:
-            {
-                formula::FormulaToken* pToken = *p;
-                ScComplexRefData& rRef = *pToken->GetDoubleRef();
-                ScRange aAbs = rRef.toAbs(*mxSheetLimits, rPos);
-                // Entire columns/rows are sticky.
-                if (    (!rRef.IsEntireCol() && (aAbs.aStart.Row() > nMaxRow 
|| aAbs.aEnd.Row() > nMaxRow)) ||
-                        (!rRef.IsEntireRow() && (aAbs.aStart.Col() > nMaxCol 
|| aAbs.aEnd.Col() > nMaxCol)))
-                    return true;
-            }
-            break;
-            default:
-                ;
-        }
-    }
-    return false;
-}
-
 sal_Int32 ScTokenArray::GetWeight() const
 {
     sal_Int32 nResult = 0;
diff --git a/sc/source/filter/excel/excform.cxx 
b/sc/source/filter/excel/excform.cxx
index f1374e2d5c12..d217c9622e06 100644
--- a/sc/source/filter/excel/excform.cxx
+++ b/sc/source/filter/excel/excform.cxx
@@ -121,13 +121,8 @@ void ImportExcel::Formula(
             if (pSharedCode)
             {
                 ScFormulaCell* pCell;
-                if (pSharedCode->NeedsWrapReference(aScPos, EXC_MAXCOL8, 
EXC_MAXROW8))
-                {
-                    pCell = new ScFormulaCell(rD, aScPos, 
pSharedCode->Clone());
-                    pCell->GetCode()->WrapReference(aScPos, EXC_MAXCOL8, 
EXC_MAXROW8);
-                }
-                else
-                    pCell = new ScFormulaCell(rD, aScPos, *pSharedCode);
+                pCell = new ScFormulaCell(rD, aScPos, pSharedCode->Clone());
+                pCell->GetCode()->WrapReference(aScPos, EXC_MAXCOL8, 
EXC_MAXROW8);
                 rDoc.getDoc().EnsureTable(aScPos.Tab());
                 rDoc.setFormulaCell(aScPos, pCell);
                 pCell->SetNeedNumberFormat(false);

Reply via email to