sc/inc/formulacell.hxx | 4 +++- sc/source/core/data/formulacell.cxx | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-)
New commits: commit 6d9b2713b100d7f158d01a9f7eb22072dc014f00 Author: Luboš Luňák <l.lu...@collabora.com> AuthorDate: Tue Mar 12 11:59:29 2019 +0100 Commit: Luboš Luňák <l.lu...@collabora.com> CommitDate: Wed Mar 13 11:07:42 2019 +0100 state explicitly how ownership of ScFormulaCell::pCode works Change-Id: I7c2938cd731ed85dd0f96ac41d0f0a1468ee858c Reviewed-on: https://gerrit.libreoffice.org/69089 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lu...@collabora.com> diff --git a/sc/inc/formulacell.hxx b/sc/inc/formulacell.hxx index ec7c61171ae7..93c18cabcee7 100644 --- a/sc/inc/formulacell.hxx +++ b/sc/inc/formulacell.hxx @@ -128,7 +128,9 @@ private: SvNumFormatType nFormatType : 16; ScFormulaResult aResult; formula::FormulaGrammar::Grammar eTempGrammar; // used between string (creation) and (re)compilation - ScTokenArray* pCode; // The (new) token array + // If this cell is in a cell group (mxGroup!=nullptr), then this pCode is a not-owning pointer + // to the mxGroup's mpCode, which owns the array. If the cell is not in a group, this is an owning pointer. + ScTokenArray* pCode; // The token array ScDocument* pDocument; ScFormulaCell* pPrevious; ScFormulaCell* pNext; diff --git a/sc/source/core/data/formulacell.cxx b/sc/source/core/data/formulacell.cxx index 782e3d499517..17dc29811ae5 100644 --- a/sc/source/core/data/formulacell.cxx +++ b/sc/source/core/data/formulacell.cxx @@ -1124,6 +1124,7 @@ void ScFormulaCell::Compile( const OUString& rFormula, bool bNoListening, ScTokenArray* pCodeOld = pCode; ScCompiler aComp( pDocument, aPos, eGrammar); pCode = aComp.CompileString( rFormula ).release(); + assert(!mxGroup); delete pCodeOld; if( pCode->GetCodeError() == FormulaError::NONE ) { @@ -1158,6 +1159,7 @@ void ScFormulaCell::Compile( ScTokenArray* pCodeOld = pCode; ScCompiler aComp(rCxt, aPos); pCode = aComp.CompileString( rFormula ).release(); + assert(!mxGroup); delete pCodeOld; if( pCode->GetCodeError() == FormulaError::NONE ) { @@ -1334,6 +1336,7 @@ void ScFormulaCell::CompileXML( sc::CompileFormulaContext& rCxt, ScProgress& rPr { ScTokenArray* pCodeOld = pCode; pCode = aComp.CompileString( aFormula, aFormulaNmsp ).release(); + assert(!mxGroup); delete pCodeOld; if( pCode->GetCodeError() == FormulaError::NONE ) _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits