diff options
Diffstat (limited to 'sc/source/core/data/documen3.cxx')
-rw-r--r-- | sc/source/core/data/documen3.cxx | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sc/source/core/data/documen3.cxx b/sc/source/core/data/documen3.cxx index 5b86ed962378..d439a44dee49 100644 --- a/sc/source/core/data/documen3.cxx +++ b/sc/source/core/data/documen3.cxx @@ -913,8 +913,9 @@ void ScDocument::BroadcastUno( const SfxHint &rHint ) // The listener calls must be processed after completing the broadcast, // because they can add or remove objects from pUnoBroadcaster. - if ( pUnoListenerCalls && rHint.ISA( SfxSimpleHint ) && - ((const SfxSimpleHint&)rHint).GetId() == SFX_HINT_DATACHANGED && + const SfxSimpleHint* pSimpleHint = dynamic_cast<const SfxSimpleHint*>(&rHint); + if ( pUnoListenerCalls && pSimpleHint && + pSimpleHint->GetId() == SFX_HINT_DATACHANGED && !bInUnoListenerCall ) { // Listener calls may lead to BroadcastUno calls again. The listener calls |