[Libreoffice-commits] core.git: comphelper/source svtools/source sw/source

Noel Grandin noel.grandin at collabora.co.uk
Thu Dec 8 17:27:46 UTC 2016


 comphelper/source/misc/accessiblecontexthelper.cxx |    2 -
 comphelper/source/misc/accessibleeventnotifier.cxx |    2 -
 svtools/source/control/accessibleruler.cxx         |   23 +++++++--------------
 sw/source/core/access/acccontext.cxx               |    2 -
 4 files changed, 11 insertions(+), 18 deletions(-)

New commits:
commit 8228227168a7eb3ebf14629bec87f01536c23970
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date:   Thu Dec 8 15:14:25 2016 +0200

    convert OSL_ENSURE to assert in AccessibleEventNotifier
    
    and fix the places that trigger it
    
    Change-Id: I97a04cff25ab5aa1d42c79a971d15ba742bf384e
    Reviewed-on: https://gerrit.libreoffice.org/31760
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/comphelper/source/misc/accessiblecontexthelper.cxx b/comphelper/source/misc/accessiblecontexthelper.cxx
index 5f855ed..bbc4102 100644
--- a/comphelper/source/misc/accessiblecontexthelper.cxx
+++ b/comphelper/source/misc/accessiblecontexthelper.cxx
@@ -151,7 +151,7 @@ namespace comphelper
         if ( !isAlive() )
             return;
 
-        if ( _rxListener.is() )
+        if ( _rxListener.is() && m_pImpl->getClientId() )
         {
             sal_Int32 nListenerCount = AccessibleEventNotifier::removeEventListener( m_pImpl->getClientId( ), _rxListener );
             if ( !nListenerCount )
diff --git a/comphelper/source/misc/accessibleeventnotifier.cxx b/comphelper/source/misc/accessibleeventnotifier.cxx
index 9c7d89a..742de12 100644
--- a/comphelper/source/misc/accessibleeventnotifier.cxx
+++ b/comphelper/source/misc/accessibleeventnotifier.cxx
@@ -130,7 +130,7 @@ namespace
         // look up this client
         ClientMap &rClients = Clients::get();
         rPos = rClients.find( nClient );
-        OSL_ENSURE( rClients.end() != rPos,
+        assert( rClients.end() != rPos &&
             "AccessibleEventNotifier::implLookupClient: invalid client id "
             "(did you register your client?)!" );
 
diff --git a/svtools/source/control/accessibleruler.cxx b/svtools/source/control/accessibleruler.cxx
index bd71793..f528ca6 100644
--- a/svtools/source/control/accessibleruler.cxx
+++ b/svtools/source/control/accessibleruler.cxx
@@ -260,7 +260,7 @@ void SAL_CALL SvtRulerAccessible::addAccessibleEventListener( const uno::Referen
 void SAL_CALL SvtRulerAccessible::removeAccessibleEventListener( const uno::Reference< XAccessibleEventListener >& xListener )
     throw( RuntimeException, std::exception )
 {
-    if (xListener.is())
+    if (xListener.is() && mnClientId)
     {
         ::osl::MutexGuard   aGuard( m_aMutex );
 
@@ -332,23 +332,16 @@ void SAL_CALL SvtRulerAccessible::disposing()
 {
     if( !rBHelper.bDisposed )
     {
-        {
-            ::osl::MutexGuard   aGuard( m_aMutex );
-            mpRepr = nullptr;      // object dies with representation
-
-        }
+        ::osl::MutexGuard   aGuard( m_aMutex );
+        mpRepr = nullptr;      // object dies with representation
 
+        // Send a disposing to all listeners.
+        if ( mnClientId )
         {
-            ::osl::MutexGuard   aGuard( m_aMutex );
-
-            // Send a disposing to all listeners.
-            if ( mnClientId )
-            {
-                comphelper::AccessibleEventNotifier::revokeClientNotifyDisposing( mnClientId, *this );
-                mnClientId =  0;
-            }
-            mxParent.clear();
+            comphelper::AccessibleEventNotifier::revokeClientNotifyDisposing( mnClientId, *this );
+            mnClientId =  0;
         }
+        mxParent.clear();
     }
 }
 
diff --git a/sw/source/core/access/acccontext.cxx b/sw/source/core/access/acccontext.cxx
index e006999..52672aa 100644
--- a/sw/source/core/access/acccontext.cxx
+++ b/sw/source/core/access/acccontext.cxx
@@ -730,7 +730,7 @@ void SAL_CALL SwAccessibleContext::removeAccessibleEventListener(
             const uno::Reference< XAccessibleEventListener >& xListener )
         throw (uno::RuntimeException, std::exception)
 {
-    if (xListener.is())
+    if (xListener.is() && m_nClientId)
     {
         SolarMutexGuard aGuard;
         sal_Int32 nListenerCount = comphelper::AccessibleEventNotifier::removeEventListener( m_nClientId, xListener );


More information about the Libreoffice-commits mailing list