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

Bjoern Michaelsen (via logerrit) logerrit at kemper.freedesktop.org
Wed Nov 4 20:24:01 UTC 2020


 sw/inc/calbck.hxx              |    3 +--
 sw/source/core/attr/calbck.cxx |   23 +----------------------
 2 files changed, 2 insertions(+), 24 deletions(-)

New commits:
commit fe5623e35d81d7343af48521857610e60bb891fa
Author:     Bjoern Michaelsen <bjoern.michaelsen at libreoffice.org>
AuthorDate: Tue Nov 3 00:27:29 2020 +0100
Commit:     Bjoern Michaelsen <bjoern.michaelsen at libreoffice.org>
CommitDate: Wed Nov 4 21:23:20 2020 +0100

    SwModify: remove the LockClientList madness
    
    sw::WriterListener has better debug messages anyway.
    
    Change-Id: I24ae3fabe885002d250ad30e596973c26316abcc
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105232
    Tested-by: Jenkins
    Reviewed-by: Bjoern Michaelsen <bjoern.michaelsen at libreoffice.org>

diff --git a/sw/inc/calbck.hxx b/sw/inc/calbck.hxx
index 19c7c0b1125a..ed719037fa9d 100644
--- a/sw/inc/calbck.hxx
+++ b/sw/inc/calbck.hxx
@@ -177,7 +177,6 @@ class SW_DLLPUBLIC SwModify: public SwClient
     template<typename E, typename S, sw::IteratorMode> friend class SwIterator;
     sw::WriterListener* m_pWriterListeners;                // the start of the linked list of clients
     bool m_bModifyLocked : 1;         // don't broadcast changes now
-    bool m_bLockClientList : 1;       // may be set when this instance notifies its clients
     bool m_bInCache   : 1;
     bool m_bInSwFntCache : 1;
 
@@ -190,7 +189,7 @@ class SW_DLLPUBLIC SwModify: public SwClient
     SwModify &operator =(const SwModify&) = delete;
 public:
     SwModify()
-        : SwClient(), m_pWriterListeners(nullptr), m_bModifyLocked(false), m_bLockClientList(false), m_bInCache(false), m_bInSwFntCache(false)
+        : SwClient(), m_pWriterListeners(nullptr), m_bModifyLocked(false), m_bInCache(false), m_bInSwFntCache(false)
     {}
 
     // broadcasting: send notifications to all clients
diff --git a/sw/source/core/attr/calbck.cxx b/sw/source/core/attr/calbck.cxx
index 917efa340bbd..efa764b8783c 100644
--- a/sw/source/core/attr/calbck.cxx
+++ b/sw/source/core/attr/calbck.cxx
@@ -185,28 +185,7 @@ void SwModify::NotifyClients( const SfxPoolItem* pOldValue, const SfxPoolItem* p
         return;
 
     LockModify();
-
-    // mba: WTF?!
-    if( !pOldValue )
-    {
-        m_bLockClientList = true;
-    }
-    else
-    {
-        switch( pOldValue->Which() )
-        {
-        case RES_OBJECTDYING:
-        case RES_REMOVE_UNO_OBJECT:
-            m_bLockClientList = static_cast<const SwPtrMsgPoolItem*>(pOldValue)->pObject != this;
-            break;
-
-        default:
-            m_bLockClientList = true;
-        }
-    }
-
     ModifyBroadcast( pOldValue, pNewValue );
-    m_bLockClientList = false;
     UnlockModify();
 }
 
@@ -224,7 +203,6 @@ bool SwModify::GetInfo( SfxPoolItem& rInfo ) const
 void SwModify::Add( SwClient* pDepend )
 {
     DBG_TESTSOLARMUTEX();
-    OSL_ENSURE( !m_bLockClientList, "Client inserted while in Modify" );
 
     if(pDepend->m_pRegisteredIn == this )
         return;
@@ -375,6 +353,7 @@ sw::ClientIteratorBase* sw::ClientIteratorBase::s_pClientIters = nullptr;
 
 void SwModify::CallSwClientNotify( const SfxHint& rHint ) const
 {
+    DBG_TESTSOLARMUTEX();
     SwIterator<SwClient,SwModify> aIter(*this);
     for(SwClient* pClient = aIter.First(); pClient; pClient = aIter.Next())
         pClient->SwClientNotify( *this, rHint );


More information about the Libreoffice-commits mailing list