[Libreoffice-commits] core.git: sc/source

Caolán McNamara (via logerrit) logerrit at kemper.freedesktop.org
Mon Sep 14 08:00:02 UTC 2020


 sc/source/core/data/formulacell.cxx |   14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

New commits:
commit 2082fb359493d74ca4c066536c230d249eef4466
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Sun Sep 13 20:07:41 2020 +0100
Commit:     Caolán McNamara <caolanm at redhat.com>
CommitDate: Mon Sep 14 09:59:12 2020 +0200

    setOldCodeToUndo always dereferences its ScDocument* arg
    
    Change-Id: Ie79920a66a710c2073e3814327d42779755b6baa
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102612
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/sc/source/core/data/formulacell.cxx b/sc/source/core/data/formulacell.cxx
index b9886d3abda2..010b4b4a8de2 100644
--- a/sc/source/core/data/formulacell.cxx
+++ b/sc/source/core/data/formulacell.cxx
@@ -3233,7 +3233,7 @@ bool checkCompileColRowName(
 }
 
 void setOldCodeToUndo(
-    ScDocument* pUndoDoc, const ScAddress& aUndoPos, const ScTokenArray* pOldCode, FormulaGrammar::Grammar eTempGrammar, ScMatrixMode cMatrixFlag)
+    ScDocument& rUndoDoc, const ScAddress& aUndoPos, const ScTokenArray* pOldCode, FormulaGrammar::Grammar eTempGrammar, ScMatrixMode cMatrixFlag)
 {
     // Copy the cell to aUndoPos, which is its current position in the document,
     // so this works when UpdateReference is called before moving the cells
@@ -3242,15 +3242,15 @@ void setOldCodeToUndo(
 
     // If there is already a formula cell in the undo document, don't overwrite it,
     // the first (oldest) is the important cell.
-    if (pUndoDoc->GetCellType(aUndoPos) == CELLTYPE_FORMULA)
+    if (rUndoDoc.GetCellType(aUndoPos) == CELLTYPE_FORMULA)
         return;
 
     ScFormulaCell* pFCell =
         new ScFormulaCell(
-            pUndoDoc, aUndoPos, pOldCode ? *pOldCode : ScTokenArray(*pUndoDoc), eTempGrammar, cMatrixFlag);
+            &rUndoDoc, aUndoPos, pOldCode ? *pOldCode : ScTokenArray(rUndoDoc), eTempGrammar, cMatrixFlag);
 
     pFCell->SetResultToken(nullptr);  // to recognize it as changed later (Cut/Paste!)
-    pUndoDoc->SetFormulaCell(aUndoPos, pFCell);
+    rUndoDoc.SetFormulaCell(aUndoPos, pFCell);
 }
 
 }
@@ -3343,7 +3343,7 @@ bool ScFormulaCell::UpdateReferenceOnShift(
     bool bNeedDirty = (bValChanged || bRecompile || bOnRefMove);
 
     if (pUndoDoc && (bValChanged || bOnRefMove))
-        setOldCodeToUndo(pUndoDoc, aUndoPos, pOldCode.get(), eTempGrammar, cMatrixFlag);
+        setOldCodeToUndo(*pUndoDoc, aUndoPos, pOldCode.get(), eTempGrammar, cMatrixFlag);
 
     bCompile |= bRecompile;
     if (bCompile)
@@ -3477,7 +3477,7 @@ bool ScFormulaCell::UpdateReferenceOnMove(
         bNeedDirty = true;
 
     if (pUndoDoc && !bCellInMoveTarget && (bValChanged || bRefModified || bOnRefMove))
-        setOldCodeToUndo(pUndoDoc, aUndoPos, pOldCode.get(), eTempGrammar, cMatrixFlag);
+        setOldCodeToUndo(*pUndoDoc, aUndoPos, pOldCode.get(), eTempGrammar, cMatrixFlag);
 
     bValChanged = false;
 
@@ -3548,7 +3548,7 @@ bool ScFormulaCell::UpdateReferenceOnCopy(
     bool bNeedDirty = bOnRefMove;
 
     if (pUndoDoc && bOnRefMove)
-        setOldCodeToUndo(pUndoDoc, aUndoPos, pOldCode.get(), eTempGrammar, cMatrixFlag);
+        setOldCodeToUndo(*pUndoDoc, aUndoPos, pOldCode.get(), eTempGrammar, cMatrixFlag);
 
     if (bCompile)
     {


More information about the Libreoffice-commits mailing list