summaryrefslogtreecommitdiff
path: root/svl
diff options
context:
space:
mode:
authorNoel Grandin <noelgrandin@gmail.com>2018-09-29 17:37:45 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2018-10-01 08:15:16 +0200
commit2318e36d888ef0daa2e8d424fa7d3c2e423b5816 (patch)
treeeeb3bc05da12bd412a9e0fe1d855bdd3d4013195 /svl
parent89e2ec08b50d88facd0b100a8be04ab56c1f3ad1 (diff)
scatter some asserts in SvtBroadcaster
copying a broadcaster that has been marked for destruction is very suspicious. so is adding a listener to such a broadcaster Change-Id: Ic1cae111a600477f16a346004b8017a9a8d242e9 Reviewed-on: https://gerrit.libreoffice.org/61136 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'svl')
-rw-r--r--svl/source/notify/broadcast.cxx7
1 files changed, 7 insertions, 0 deletions
diff --git a/svl/source/notify/broadcast.cxx b/svl/source/notify/broadcast.cxx
index 62a52dff18c5..d91a94610d8f 100644
--- a/svl/source/notify/broadcast.cxx
+++ b/svl/source/notify/broadcast.cxx
@@ -20,6 +20,7 @@
#include <svl/broadcast.hxx>
#include <svl/listener.hxx>
#include <svl/hint.hxx>
+#include <cassert>
#include <algorithm>
void SvtBroadcaster::Normalize() const
@@ -43,6 +44,10 @@ void SvtBroadcaster::Normalize() const
void SvtBroadcaster::Add( SvtListener* p )
{
+ assert(!mbDisposing && "called inside my own destructor?");
+ assert(!mbAboutToDie && "called after PrepareForDestruction()?");
+ if (mbDisposing || mbAboutToDie)
+ return;
maListeners.push_back(p);
mbNormalized = false;
}
@@ -76,6 +81,8 @@ SvtBroadcaster::SvtBroadcaster( const SvtBroadcaster &rBC ) :
mbAboutToDie(rBC.mbAboutToDie), mbDisposing(false),
mbNormalized(rBC.mbNormalized), mbDestNormalized(rBC.mbDestNormalized)
{
+ assert(!mbAboutToDie && "copying an object marked with PrepareForDestruction()?");
+
if (mbAboutToDie)
Normalize();