diff options
author | Noel Grandin <noelgrandin@gmail.com> | 2018-09-29 17:37:45 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-10-01 08:15:16 +0200 |
commit | 2318e36d888ef0daa2e8d424fa7d3c2e423b5816 (patch) | |
tree | eeb3bc05da12bd412a9e0fe1d855bdd3d4013195 /svl | |
parent | 89e2ec08b50d88facd0b100a8be04ab56c1f3ad1 (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.cxx | 7 |
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(); |