summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Mohrhard <markus.mohrhard@googlemail.com>2012-08-28 18:47:37 +0200
committerNoel Power <noel.power@suse.com>2012-08-29 09:34:46 +0100
commitcedaa445535e9337294a46cb75c4850294e4f715 (patch)
tree7c9c32263e916a530cbf8afb40a0115413d65d47
parentba08ba5b30f906b795360ce4579721b25e316ae7 (diff)
prevent double delete of broadcaster, fdo#54074, fdo#53364
Change-Id: I7d94525daaeb7c8268fb10594c8a21ebcd52311c Signed-off-by: Noel Power <noel.power@suse.com>
-rw-r--r--sc/source/core/data/column3.cxx7
1 files changed, 5 insertions, 2 deletions
diff --git a/sc/source/core/data/column3.cxx b/sc/source/core/data/column3.cxx
index aab315c30029..6495ca6598e1 100644
--- a/sc/source/core/data/column3.cxx
+++ b/sc/source/core/data/column3.cxx
@@ -401,8 +401,11 @@ void ScColumn::DeleteRange( SCSIZE nStartIndex, SCSIZE nEndIndex, sal_uInt16 nDe
SvtBroadcaster* pBC = pOldCell->GetBroadcaster();
bool bKeepBC = pBC && pBC->HasListeners();
// #i99844# do not release broadcaster from old cell, it still has to notify deleted content
- if ( bKeepBC)
- pNoteCell = new ScNoteCell( pBC );
+ if (bKeepBC)
+ {
+ pNoteCell = new ScNoteCell( pBC );
+ pOldCell->ReleaseBroadcaster();
+ }
// remove cell entry in cell item list
SCROW nOldRow = maItems[nIdx].nRow;