diff options
author | David Tardon <dtardon@redhat.com> | 2014-11-03 17:50:51 +0100 |
---|---|---|
committer | David Tardon <dtardon@redhat.com> | 2014-11-03 18:50:59 +0100 |
commit | 6631ed540b701d4f8e04b34f528c6531980b1823 (patch) | |
tree | 8009dbb6893eb4a0a57b13a768eafc9506b1898a /editeng | |
parent | f141ef6bcf76945edbd7353344271e95057d5d3b (diff) |
coverity#982161 unchecked return value
Change-Id: I3c8370915898e322f40812b52929132e192b3a2c
Diffstat (limited to 'editeng')
-rw-r--r-- | editeng/source/accessibility/AccessibleImageBullet.cxx | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/editeng/source/accessibility/AccessibleImageBullet.cxx b/editeng/source/accessibility/AccessibleImageBullet.cxx index 155da1286e96..7fa0924a96cf 100644 --- a/editeng/source/accessibility/AccessibleImageBullet.cxx +++ b/editeng/source/accessibility/AccessibleImageBullet.cxx @@ -207,7 +207,19 @@ namespace accessibility { if( getNotifierClientId() != -1 ) - ::comphelper::AccessibleEventNotifier::removeEventListener( getNotifierClientId(), xListener ); + { + const sal_Int32 nListenerCount = ::comphelper::AccessibleEventNotifier::removeEventListener( getNotifierClientId(), xListener ); + if ( !nListenerCount ) + { + // no listeners anymore + // -> revoke ourself. This may lead to the notifier thread dying (if we were the last client), + // and at least to us not firing any events anymore, in case somebody calls + // NotifyAccessibleEvent, again + ::comphelper::AccessibleEventNotifier::TClientId nId( getNotifierClientId() ); + mnNotifierClientId = -1; + ::comphelper::AccessibleEventNotifier::revokeClient( nId ); + } + } } sal_Bool SAL_CALL AccessibleImageBullet::containsPoint( const awt::Point& rPoint ) throw (uno::RuntimeException, std::exception) |