diff options
author | Markus Mohrhard <markus.mohrhard@collabora.co.uk> | 2014-12-08 07:43:14 +0100 |
---|---|---|
committer | Tor Lillqvist <tml@collabora.com> | 2014-12-15 13:54:34 +0200 |
commit | e861d4924997f6bbc03f4fc745ac975c203bdfda (patch) | |
tree | ceb2509022cf4f491ba128fbd35b2f9212ea4d3f | |
parent | Resolves: rhbz#1164614 xslt dialog crashes if there are no entries (diff) | |
download | core-e861d4924997f6bbc03f4fc745ac975c203bdfda.tar.gz core-e861d4924997f6bbc03f4fc745ac975c203bdfda.zip |
we need the SdrPage for deleting the notes, fdo#86166
The SdrPage that contains the shapes for the note captions is deleted
before the notes. Prevent that case by deleting the notes before
deleting the SdrPage.
Change-Id: I13727cea7df0b033fb386a6a8e20dcadec743335
Reviewed-on: https://gerrit.libreoffice.org/13362
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r-- | sc/inc/column.hxx | 1 | ||||
-rw-r--r-- | sc/source/core/data/column3.cxx | 6 | ||||
-rw-r--r-- | sc/source/core/data/table1.cxx | 4 |
3 files changed, 11 insertions, 0 deletions
diff --git a/sc/inc/column.hxx b/sc/inc/column.hxx index 6911ca0e34ff..dee712f0ede0 100644 --- a/sc/inc/column.hxx +++ b/sc/inc/column.hxx @@ -187,6 +187,7 @@ public: void Delete( SCROW nRow ); void FreeAll(); + void FreeNotes(); void Swap( ScColumn& rOther, SCROW nRow1, SCROW nRow2, bool bPattern ); bool HasAttrib( SCROW nRow1, SCROW nRow2, sal_uInt16 nMask ) const; diff --git a/sc/source/core/data/column3.cxx b/sc/source/core/data/column3.cxx index 924c9e33dbd6..3c39880514b1 100644 --- a/sc/source/core/data/column3.cxx +++ b/sc/source/core/data/column3.cxx @@ -141,6 +141,12 @@ void ScColumn::FreeAll() CellStorageModified(); } +void ScColumn::FreeNotes() +{ + maCellNotes.clear(); + maCellNotes.resize(MAXROWCOUNT); +} + namespace { class ShiftFormulaPosHandler diff --git a/sc/source/core/data/table1.cxx b/sc/source/core/data/table1.cxx index 94cf672460d6..2b1c2c93b0fd 100644 --- a/sc/source/core/data/table1.cxx +++ b/sc/source/core/data/table1.cxx @@ -319,6 +319,10 @@ ScTable::~ScTable() { if (!pDocument->IsInDtorClear()) { + for (SCCOL nCol = 0; nCol < MAXCOL; ++nCol) + { + aCol[nCol].FreeNotes(); + } // nicht im dtor die Pages in der falschen Reihenfolge loeschen // (nTab stimmt dann als Page-Number nicht!) // In ScDocument::Clear wird hinterher per Clear am Draw Layer alles geloescht. |