[Libreoffice-commits] core.git: 27 commits - sw/inc sw/source
Bjoern Michaelsen
bjoern.michaelsen at canonical.com
Fri Mar 13 18:31:10 PDT 2015
sw/inc/calbck.hxx | 246 ++++++++++++++++++++++++---------
sw/source/core/attr/calbck.cxx | 305 ++++-------------------------------------
2 files changed, 214 insertions(+), 337 deletions(-)
New commits:
commit ccc6ec97d85734beb375467fdc570a4db0e2925c
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date: Fri Mar 13 14:58:03 2015 +0100
SwDepend: naming conventions
Change-Id: I778aaefdcc3ec741065cd1e58265c14a7dae5f97
diff --git a/sw/inc/calbck.hxx b/sw/inc/calbck.hxx
index d1c93f5..d3a02ec 100644
--- a/sw/inc/calbck.hxx
+++ b/sw/inc/calbck.hxx
@@ -196,32 +196,32 @@ public:
/*
* Helper class for objects that need to depend on more than one SwClient
*/
-class SW_DLLPUBLIC SwDepend: public SwClient
+class SW_DLLPUBLIC SwDepend SAL_FINAL : public SwClient
{
- SwClient *pToTell;
+ SwClient *m_pToTell;
public:
- SwDepend() : pToTell(nullptr) {}
- SwDepend(SwClient *pTellHim, SwModify *pDepend) : SwClient(pDepend), pToTell(pTellHim) {}
+ SwDepend() : m_pToTell(nullptr) {}
+ SwDepend(SwClient *pTellHim, SwModify *pDepend) : SwClient(pDepend), m_pToTell(pTellHim) {}
- SwClient* GetToTell() { return pToTell; }
+ SwClient* GetToTell() { return m_pToTell; }
/** get Client information */
virtual bool GetInfo( SfxPoolItem& rInfo) const SAL_OVERRIDE
- { return pToTell ? pToTell->GetInfo( rInfo ) : true; }
+ { return m_pToTell ? m_pToTell->GetInfo( rInfo ) : true; }
protected:
virtual void Modify( const SfxPoolItem* pOldValue, const SfxPoolItem *pNewValue ) SAL_OVERRIDE
{
if( pNewValue && pNewValue->Which() == RES_OBJECTDYING )
CheckRegistration(pOldValue,pNewValue);
- else if( pToTell )
- pToTell->ModifyNotification(pOldValue, pNewValue);
+ else if( m_pToTell )
+ m_pToTell->ModifyNotification(pOldValue, pNewValue);
}
virtual void SwClientNotify( const SwModify& rModify, const SfxHint& rHint ) SAL_OVERRIDE
- { if(pToTel) pToTell->SwClientNotifyCall(rModify, rHint); }
+ { if(m_pToTell) m_pToTell->SwClientNotifyCall(rModify, rHint); }
};
-class SwClientIter : public sw::Ring<SwClientIter>
+class SwClientIter SAL_FINAL : public sw::Ring<SwClientIter>
{
friend SwClient* SwModify::Remove(SwClient *); ///< for pointer adjustments
friend void SwModify::Add(SwClient *pDepend); ///< for pointer adjustments
commit e341d3353e30be084da5b1c1758f8de25519159a
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date: Fri Mar 13 14:57:08 2015 +0100
SwDepend: cosmetics
Change-Id: I6b20b0b3b301811cdd426a26cc40e12498516c2f
diff --git a/sw/inc/calbck.hxx b/sw/inc/calbck.hxx
index 54d9b18..d1c93f5 100644
--- a/sw/inc/calbck.hxx
+++ b/sw/inc/calbck.hxx
@@ -27,6 +27,7 @@
#include <hintids.hxx>
#include <hints.hxx>
+
class SwModify;
class SwClientIter;
class SfxPoolItem;
@@ -200,7 +201,7 @@ class SW_DLLPUBLIC SwDepend: public SwClient
SwClient *pToTell;
public:
- SwDepend() : pToTell(0) {}
+ SwDepend() : pToTell(nullptr) {}
SwDepend(SwClient *pTellHim, SwModify *pDepend) : SwClient(pDepend), pToTell(pTellHim) {}
SwClient* GetToTell() { return pToTell; }
@@ -217,10 +218,7 @@ protected:
pToTell->ModifyNotification(pOldValue, pNewValue);
}
virtual void SwClientNotify( const SwModify& rModify, const SfxHint& rHint ) SAL_OVERRIDE
- {
- if ( pToTell )
- pToTell->SwClientNotifyCall( rModify, rHint );
- }
+ { if(pToTel) pToTell->SwClientNotifyCall(rModify, rHint); }
};
class SwClientIter : public sw::Ring<SwClientIter>
commit 0ec458926072457103cc9461cd908b8993d50402
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date: Fri Mar 13 14:51:53 2015 +0100
inline SwDepends trivials
Change-Id: I6fb306aec5fee5f97a7ef33862f74f6030136fc0
diff --git a/sw/inc/calbck.hxx b/sw/inc/calbck.hxx
index 135b4fe..54d9b18 100644
--- a/sw/inc/calbck.hxx
+++ b/sw/inc/calbck.hxx
@@ -24,6 +24,8 @@
#include "swdllapi.h"
#include <boost/noncopyable.hpp>
#include <ring.hxx>
+#include <hintids.hxx>
+#include <hints.hxx>
class SwModify;
class SwClientIter;
@@ -199,15 +201,26 @@ class SW_DLLPUBLIC SwDepend: public SwClient
public:
SwDepend() : pToTell(0) {}
- SwDepend(SwClient *pTellHim, SwModify *pDepend);
+ SwDepend(SwClient *pTellHim, SwModify *pDepend) : SwClient(pDepend), pToTell(pTellHim) {}
SwClient* GetToTell() { return pToTell; }
/** get Client information */
- virtual bool GetInfo( SfxPoolItem & ) const SAL_OVERRIDE;
+ virtual bool GetInfo( SfxPoolItem& rInfo) const SAL_OVERRIDE
+ { return pToTell ? pToTell->GetInfo( rInfo ) : true; }
protected:
- virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNewValue ) SAL_OVERRIDE;
- virtual void SwClientNotify( const SwModify& rModify, const SfxHint& rHint ) SAL_OVERRIDE;
+ virtual void Modify( const SfxPoolItem* pOldValue, const SfxPoolItem *pNewValue ) SAL_OVERRIDE
+ {
+ if( pNewValue && pNewValue->Which() == RES_OBJECTDYING )
+ CheckRegistration(pOldValue,pNewValue);
+ else if( pToTell )
+ pToTell->ModifyNotification(pOldValue, pNewValue);
+ }
+ virtual void SwClientNotify( const SwModify& rModify, const SfxHint& rHint ) SAL_OVERRIDE
+ {
+ if ( pToTell )
+ pToTell->SwClientNotifyCall( rModify, rHint );
+ }
};
class SwClientIter : public sw::Ring<SwClientIter>
diff --git a/sw/source/core/attr/calbck.cxx b/sw/source/core/attr/calbck.cxx
index 7d317af..636ee94 100644
--- a/sw/source/core/attr/calbck.cxx
+++ b/sw/source/core/attr/calbck.cxx
@@ -270,30 +270,5 @@ void SwModify::CheckCaching( const sal_uInt16 nWhich )
}
}
-SwDepend::SwDepend( SwClient* pTellHim, SwModify* pDepend )
- : SwClient( pDepend )
-{
- pToTell = pTellHim;
-}
-
-void SwDepend::Modify( const SfxPoolItem* pOldValue, const SfxPoolItem* pNewValue )
-{
- if( pNewValue && pNewValue->Which() == RES_OBJECTDYING )
- CheckRegistration(pOldValue,pNewValue);
- else if( pToTell )
- pToTell->ModifyNotification(pOldValue, pNewValue);
-}
-
-void SwDepend::SwClientNotify( const SwModify& rMod, const SfxHint& rHint )
-{
- if ( pToTell )
- pToTell->SwClientNotifyCall( rMod, rHint );
-}
-
-bool SwDepend::GetInfo( SfxPoolItem& rInfo ) const
-{
- return pToTell ? pToTell->GetInfo( rInfo ) : true;
-}
-
SwClientIter* SwClientIter::our_pClientIters = nullptr;
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
commit e755c1d446d719fe796ad7811405b7bf0680a190
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date: Fri Mar 13 14:30:10 2015 +0100
inline broadcast iterations
Change-Id: If6f83887ad398161d9ccb1e2649ca6cdfd933ca5
diff --git a/sw/inc/calbck.hxx b/sw/inc/calbck.hxx
index 3520416..135b4fe 100644
--- a/sw/inc/calbck.hxx
+++ b/sw/inc/calbck.hxx
@@ -155,10 +155,10 @@ public:
// the same, but without setting bModifyLocked or checking for any of the flags
// mba: it would be interesting to know why this is necessary
// also allows to limit callback to certain type (HACK)
- void ModifyBroadcast( const SfxPoolItem *pOldValue, const SfxPoolItem *pNewValue, TypeId nType = TYPE(SwClient) );
+ inline void ModifyBroadcast( const SfxPoolItem *pOldValue, const SfxPoolItem *pNewValue, TypeId nType = TYPE(SwClient) );
// a more universal broadcasting mechanism
- void CallSwClientNotify( const SfxHint& rHint ) const;
+ inline void CallSwClientNotify( const SfxHint& rHint ) const;
// single argument ctors shall be explicit.
explicit SwModify( SwModify* pToRegisterIn )
@@ -333,6 +333,19 @@ SwClient::SwClient( SwModify* pToRegisterIn )
if(pToRegisterIn)
pToRegisterIn->Add(this);
}
+
+void SwModify::ModifyBroadcast( const SfxPoolItem *pOldValue, const SfxPoolItem *pNewValue, TypeId nType)
+{
+ SwClientIter aIter(*this);
+ for(aIter.First(nType); aIter; aIter.Next())
+ aIter->Modify( pOldValue, pNewValue );
+}
+
+void SwModify::CallSwClientNotify( const SfxHint& rHint ) const
+{
+ for(SwClientIter aIter(*this); aIter; ++aIter)
+ aIter->SwClientNotify( *this, rHint );
+}
#endif
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/core/attr/calbck.cxx b/sw/source/core/attr/calbck.cxx
index a268b3d..7d317af 100644
--- a/sw/source/core/attr/calbck.cxx
+++ b/sw/source/core/attr/calbck.cxx
@@ -270,19 +270,6 @@ void SwModify::CheckCaching( const sal_uInt16 nWhich )
}
}
-void SwModify::CallSwClientNotify( const SfxHint& rHint ) const
-{
- for(SwClientIter aIter(*this); aIter; ++aIter)
- aIter->SwClientNotify( *this, rHint );
-}
-
-void SwModify::ModifyBroadcast( const SfxPoolItem* pOldValue, const SfxPoolItem* pNewValue, TypeId nType )
-{
- SwClientIter aIter(*this);
- for(aIter.First(nType); aIter; aIter.Next())
- aIter->Modify( pOldValue, pNewValue );
-}
-
SwDepend::SwDepend( SwClient* pTellHim, SwModify* pDepend )
: SwClient( pDepend )
{
commit 9bfd0481dc7d37da994eb215b238c12f2f68b485
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date: Fri Mar 13 14:14:09 2015 +0100
simplify SwClientIter iteration
Change-Id: I078fd3808768cd49190984278207045cc73aa8e6
diff --git a/sw/inc/calbck.hxx b/sw/inc/calbck.hxx
index 5955a7d..3520416 100644
--- a/sw/inc/calbck.hxx
+++ b/sw/inc/calbck.hxx
@@ -276,6 +276,14 @@ public:
// otherwise it returns the next SwClient that still is
SwClient* operator()() const
{ return m_pPosition; }
+ // returns the current SwClient object, wether it is still a client or not
+ SwClient& operator*() const
+ { return *m_pCurrent; }
+ // returns the current SwClient object, wether it is still a client or not
+ SwClient* operator->() const
+ { return m_pCurrent; }
+ explicit operator bool() const
+ { return m_pCurrent!=nullptr; }
// return "true" if an object was removed from a client chain in iteration
// adding objects to a client chain in iteration is forbidden
diff --git a/sw/source/core/attr/calbck.cxx b/sw/source/core/attr/calbck.cxx
index 6c32760..a268b3d 100644
--- a/sw/source/core/attr/calbck.cxx
+++ b/sw/source/core/attr/calbck.cxx
@@ -272,24 +272,15 @@ void SwModify::CheckCaching( const sal_uInt16 nWhich )
void SwModify::CallSwClientNotify( const SfxHint& rHint ) const
{
- SwClientIter aIter(*this);
- SwClient* pClient = aIter.GoStart();
- while( pClient )
- {
- pClient->SwClientNotify( *this, rHint );
- pClient = ++aIter;
- }
+ for(SwClientIter aIter(*this); aIter; ++aIter)
+ aIter->SwClientNotify( *this, rHint );
}
void SwModify::ModifyBroadcast( const SfxPoolItem* pOldValue, const SfxPoolItem* pNewValue, TypeId nType )
{
- SwClientIter aIter( *this );
- SwClient* pClient = aIter.First( nType );
- while( pClient )
- {
- pClient->Modify( pOldValue, pNewValue );
- pClient = aIter.Next();
- }
+ SwClientIter aIter(*this);
+ for(aIter.First(nType); aIter; aIter.Next())
+ aIter->Modify( pOldValue, pNewValue );
}
SwDepend::SwDepend( SwClient* pTellHim, SwModify* pDepend )
commit 8152cf6df78c7a7bb632f708311b17a50eb091c8
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date: Fri Mar 13 13:46:59 2015 +0100
simpilfy SwClient::operator()
Change-Id: I78e9791d99cbc5434606b98b7b0103758e7e3812
diff --git a/sw/inc/calbck.hxx b/sw/inc/calbck.hxx
index 6f95eed..5955a7d 100644
--- a/sw/inc/calbck.hxx
+++ b/sw/inc/calbck.hxx
@@ -272,11 +272,10 @@ public:
return m_pCurrent = m_pPosition;
}
- // returns the current SwClient object;
- // in case this was already removed, the object marked down to become
- // the next current one is returned
+ // returns the current SwClient object, if its still a listener
+ // otherwise it returns the next SwClient that still is
SwClient* operator()() const
- { return m_pPosition == m_pCurrent ? m_pCurrent : m_pPosition; }
+ { return m_pPosition; }
// return "true" if an object was removed from a client chain in iteration
// adding objects to a client chain in iteration is forbidden
commit e2a38e6599247b90ed4ff903f8a9cc64b6a3af68
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date: Fri Mar 13 13:44:40 2015 +0100
inline trivial SwModify functions
Change-Id: I0dda2a53e49073a75b9ce14d7aa4b5088eeb2fd7
diff --git a/sw/inc/calbck.hxx b/sw/inc/calbck.hxx
index fd7785b..6f95eed 100644
--- a/sw/inc/calbck.hxx
+++ b/sw/inc/calbck.hxx
@@ -141,10 +141,13 @@ class SW_DLLPUBLIC SwModify: public SwClient
bool bInSwFntCache : 1;
// mba: IMHO this method should be pure virtual
- virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew) SAL_OVERRIDE;
+ virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew) SAL_OVERRIDE
+ { NotifyClients( pOld, pNew ); };
public:
- SwModify();
+ SwModify()
+ : SwClient(nullptr), pRoot(nullptr), bModifyLocked(false), bLockClientList(false), bInDocDTOR(false), bInCache(false), bInSwFntCache(false)
+ {}
// broadcasting: send notifications to all clients
void NotifyClients( const SfxPoolItem *pOldValue, const SfxPoolItem *pNewValue );
@@ -158,7 +161,10 @@ public:
void CallSwClientNotify( const SfxHint& rHint ) const;
// single argument ctors shall be explicit.
- explicit SwModify( SwModify *pToRegisterIn );
+ explicit SwModify( SwModify* pToRegisterIn )
+ : SwClient(pToRegisterIn), pRoot(nullptr), bModifyLocked(false), bLockClientList(false), bInDocDTOR(false), bInCache(false), bInSwFntCache(false)
+ {}
+
virtual ~SwModify();
void Add(SwClient *pDepend);
diff --git a/sw/source/core/attr/calbck.cxx b/sw/source/core/attr/calbck.cxx
index 350030c..6c32760 100644
--- a/sw/source/core/attr/calbck.cxx
+++ b/sw/source/core/attr/calbck.cxx
@@ -56,27 +56,6 @@ void SwClient::CheckRegistration( const SfxPoolItem* pOld, const SfxPoolItem* )
}
}
-
-SwModify::SwModify()
- : SwClient(nullptr), pRoot(nullptr)
-{
- bModifyLocked = false;
- bLockClientList = false;
- bInDocDTOR = false;
- bInCache = false;
- bInSwFntCache = false;
-}
-
-SwModify::SwModify( SwModify* pToRegisterIn )
- : SwClient( pToRegisterIn ), pRoot( nullptr )
-{
- bModifyLocked = false;
- bLockClientList = false;
- bInDocDTOR = false;
- bInCache = false;
- bInSwFntCache = false;
-}
-
SwModify::~SwModify()
{
OSL_ENSURE( !IsModifyLocked(), "Modify destroyed but locked." );
@@ -117,11 +96,6 @@ SwModify::~SwModify()
}
}
-void SwModify::Modify( const SfxPoolItem* pOldValue, const SfxPoolItem* pNewValue )
-{
- NotifyClients( pOldValue, pNewValue );
-}
-
void SwModify::NotifyClients( const SfxPoolItem* pOldValue, const SfxPoolItem* pNewValue )
{
if ( IsInCache() || IsInSwFntCache() )
commit 3fc8c700e5964690b637847294a0b38ac4fbbb02
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date: Fri Mar 13 13:23:40 2015 +0100
inline trivial SwClient functions
Change-Id: I1672844d0ad7f95d5c5add62703729588190d20f
diff --git a/sw/inc/calbck.hxx b/sw/inc/calbck.hxx
index 421f61b..fd7785b 100644
--- a/sw/inc/calbck.hxx
+++ b/sw/inc/calbck.hxx
@@ -96,7 +96,7 @@ class SW_DLLPUBLIC SwClient : ::sw::WriterListener
protected:
// single argument ctors shall be explicit.
- explicit SwClient(SwModify *pToRegisterIn);
+ inline explicit SwClient( SwModify* pToRegisterIn );
// write access to pRegisteredIn shall be granted only to the object itself (protected access)
SwModify* GetRegisteredInNonConst() const { return pRegisteredIn; }
@@ -105,7 +105,8 @@ public:
SwClient() : pRegisteredIn(nullptr) {}
virtual ~SwClient();
- virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew);
+ virtual void Modify( const SfxPoolItem* pOldValue, const SfxPoolItem* pNewValue )
+ { CheckRegistration( pOldValue, pNewValue ); }
// in case an SwModify object is destroyed that itself is registered in another SwModify,
// its SwClient objects can decide to get registered to the latter instead by calling this method
@@ -114,7 +115,7 @@ public:
// controlled access to Modify method
// mba: this is still considered a hack and it should be fixed; the name makes grep-ing easier
void ModifyNotification( const SfxPoolItem *pOldValue, const SfxPoolItem *pNewValue ) { this->Modify ( pOldValue, pNewValue ); }
- void SwClientNotifyCall( const SwModify& rModify, const SfxHint& rHint ) { SwClientNotify( rModify, rHint ); }
+ void SwClientNotifyCall( const SwModify& rModify, const SfxHint& rHint ) { SwClientNotify( rModify, rHint ); }
const SwModify* GetRegisteredIn() const { return pRegisteredIn; }
SwModify* GetRegisteredIn() { return pRegisteredIn; }
@@ -123,7 +124,7 @@ public:
TYPEINFO();
// get information about attribute
- virtual bool GetInfo( SfxPoolItem& ) const;
+ virtual bool GetInfo( SfxPoolItem& ) const { return true; }
};
@@ -313,6 +314,12 @@ public:
}
};
+SwClient::SwClient( SwModify* pToRegisterIn )
+ : pRegisteredIn( nullptr )
+{
+ if(pToRegisterIn)
+ pToRegisterIn->Add(this);
+}
#endif
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/core/attr/calbck.cxx b/sw/source/core/attr/calbck.cxx
index 58fe03e..350030c 100644
--- a/sw/source/core/attr/calbck.cxx
+++ b/sw/source/core/attr/calbck.cxx
@@ -26,12 +26,11 @@
TYPEINIT0( SwClient );
-SwClient::SwClient( SwModify* pToRegisterIn )
- : pRegisteredIn( nullptr )
+SwClient::~SwClient()
{
- if(pToRegisterIn)
- // connect to SwModify
- pToRegisterIn->Add(this);
+ OSL_ENSURE( !pRegisteredIn || pRegisteredIn->GetDepends(), "SwModify still known, but Client already disconnected!" );
+ if( pRegisteredIn && pRegisteredIn->GetDepends() )
+ pRegisteredIn->Remove( this );
}
void SwClient::CheckRegistration( const SfxPoolItem* pOld, const SfxPoolItem* )
@@ -57,23 +56,6 @@ void SwClient::CheckRegistration( const SfxPoolItem* pOld, const SfxPoolItem* )
}
}
-void SwClient::Modify( const SfxPoolItem* pOldValue, const SfxPoolItem* pNewValue )
-{
- CheckRegistration( pOldValue, pNewValue );
-}
-
-SwClient::~SwClient()
-{
- OSL_ENSURE( !pRegisteredIn || pRegisteredIn->GetDepends(), "SwModify still known, but Client already disconnected!" );
- if( pRegisteredIn && pRegisteredIn->GetDepends() )
- // still connected
- pRegisteredIn->Remove( this );
-}
-
-bool SwClient::GetInfo( SfxPoolItem& ) const
-{
- return true;
-}
SwModify::SwModify()
: SwClient(nullptr), pRoot(nullptr)
commit e07c6a6fea726904b5669baa50fc8ea45b4328f8
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date: Fri Mar 13 12:59:46 2015 +0100
fix naming conventions while at it
Change-Id: I2d2daa78869764ebf236444187d4dcdc508208be
diff --git a/sw/inc/calbck.hxx b/sw/inc/calbck.hxx
index c0b3ea2..421f61b 100644
--- a/sw/inc/calbck.hxx
+++ b/sw/inc/calbck.hxx
@@ -208,108 +208,108 @@ class SwClientIter : public sw::Ring<SwClientIter>
friend SwClient* SwModify::Remove(SwClient *); ///< for pointer adjustments
friend void SwModify::Add(SwClient *pDepend); ///< for pointer adjustments
- const SwModify& rRoot;
+ const SwModify& m_rRoot;
// the current object in an iteration
- SwClient* pAct;
+ SwClient* m_pCurrent;
// in case the current object is already removed, the next object in the list
// is marked down to become the current object in the next step
// this is necessary because iteration requires access to members of the current object
- SwClient* pDelNext;
+ SwClient* m_pPosition;
// iterator can be limited to return only SwClient objects of a certain type
- TypeId aSrchId;
+ TypeId m_aSearchType;
- static SwClientIter* pClientIters;
+ static SW_DLLPUBLIC SwClientIter* our_pClientIters;
public:
SwClientIter( const SwModify& rModify )
- : rRoot(rModify)
- , aSrchId(nullptr)
+ : m_rRoot(rModify)
+ , m_aSearchType(nullptr)
{
- MoveTo(pClientIters);
- pClientIters = this;
- pAct = pDelNext = const_cast<SwClient*>(rRoot.GetDepends());
+ MoveTo(our_pClientIters);
+ our_pClientIters = this;
+ m_pCurrent = m_pPosition = const_cast<SwClient*>(m_rRoot.GetDepends());
}
~SwClientIter()
{
- assert(pClientIters);
- if(pClientIters == this)
- pClientIters = unique() ? nullptr : GetNextInRing();
+ assert(our_pClientIters);
+ if(our_pClientIters == this)
+ our_pClientIters = unique() ? nullptr : GetNextInRing();
MoveTo(nullptr);
}
- const SwModify& GetModify() const { return rRoot; }
+ const SwModify& GetModify() const { return m_rRoot; }
SwClient* operator++()
{
- if( pDelNext == pAct )
- pDelNext = static_cast<SwClient*>(pDelNext->m_pRight);
- return pAct = pDelNext;
+ if( m_pPosition == m_pCurrent )
+ m_pPosition = static_cast<SwClient*>(m_pPosition->m_pRight);
+ return m_pCurrent = m_pPosition;
}
SwClient* GoStart()
{
- if((pDelNext = const_cast<SwClient*>(rRoot.GetDepends())))
- while( pDelNext->m_pLeft )
- pDelNext = static_cast<SwClient*>(pDelNext->m_pLeft);
- return pAct = pDelNext;
+ if((m_pPosition = const_cast<SwClient*>(m_rRoot.GetDepends())))
+ while( m_pPosition->m_pLeft )
+ m_pPosition = static_cast<SwClient*>(m_pPosition->m_pLeft);
+ return m_pCurrent = m_pPosition;
}
SwClient* GoEnd()
{
- if(!pDelNext)
- pDelNext = const_cast<SwClient*>(rRoot.GetDepends());
- if(pDelNext)
- while( pDelNext->m_pRight )
- pDelNext = static_cast<SwClient*>(pDelNext->m_pRight);
- return pAct = pDelNext;
+ if(!m_pPosition)
+ m_pPosition = const_cast<SwClient*>(m_rRoot.GetDepends());
+ if(m_pPosition)
+ while( m_pPosition->m_pRight )
+ m_pPosition = static_cast<SwClient*>(m_pPosition->m_pRight);
+ return m_pCurrent = m_pPosition;
}
// returns the current SwClient object;
// in case this was already removed, the object marked down to become
// the next current one is returned
SwClient* operator()() const
- { return pDelNext == pAct ? pAct : pDelNext; }
+ { return m_pPosition == m_pCurrent ? m_pCurrent : m_pPosition; }
// return "true" if an object was removed from a client chain in iteration
// adding objects to a client chain in iteration is forbidden
// SwModify::Add() asserts this
- bool IsChanged() const { return pDelNext != pAct; }
+ bool IsChanged() const { return m_pPosition != m_pCurrent; }
SwClient* First( TypeId nType )
{
- aSrchId = nType;
+ m_aSearchType = nType;
GoStart();
- if(!pDelNext)
+ if(!m_pPosition)
return nullptr;
- pAct = nullptr;
+ m_pCurrent = nullptr;
return Next();
}
SwClient* Last( TypeId nType )
{
- aSrchId = nType;
+ m_aSearchType = nType;
GoEnd();
- if(!pDelNext)
+ if(!m_pPosition)
return nullptr;
- if( pDelNext->IsA( aSrchId ) )
- return pDelNext;
+ if( m_pPosition->IsA( m_aSearchType ) )
+ return m_pPosition;
return Previous();
}
SwClient* Next()
{
- if( pDelNext == pAct )
- pDelNext = static_cast<SwClient*>(pDelNext->m_pRight);
- while(pDelNext && !pDelNext->IsA( aSrchId ) )
- pDelNext = static_cast<SwClient*>(pDelNext->m_pRight);
- return pAct = pDelNext;
+ if( m_pPosition == m_pCurrent )
+ m_pPosition = static_cast<SwClient*>(m_pPosition->m_pRight);
+ while(m_pPosition && !m_pPosition->IsA( m_aSearchType ) )
+ m_pPosition = static_cast<SwClient*>(m_pPosition->m_pRight);
+ return m_pCurrent = m_pPosition;
}
SwClient* Previous()
{
- pDelNext = static_cast<SwClient*>(pDelNext->m_pLeft);
- while(pDelNext && !pDelNext->IsA( aSrchId ) )
- pDelNext = static_cast<SwClient*>(pDelNext->m_pLeft);
- return pAct = pDelNext;
+ m_pPosition = static_cast<SwClient*>(m_pPosition->m_pLeft);
+ while(m_pPosition && !m_pPosition->IsA( m_aSearchType ) )
+ m_pPosition = static_cast<SwClient*>(m_pPosition->m_pLeft);
+ return m_pCurrent = m_pPosition;
}
};
diff --git a/sw/source/core/attr/calbck.cxx b/sw/source/core/attr/calbck.cxx
index bb0a8dc..58fe03e 100644
--- a/sw/source/core/attr/calbck.cxx
+++ b/sw/source/core/attr/calbck.cxx
@@ -205,9 +205,9 @@ void SwModify::Add( SwClient* pDepend )
if(pDepend->pRegisteredIn != this )
{
#if OSL_DEBUG_LEVEL > 0
- if(SwClientIter::pClientIters)
+ if(SwClientIter::our_pClientIters)
{
- for(auto& rIter : SwClientIter::pClientIters->GetRingContainer())
+ for(auto& rIter : SwClientIter::our_pClientIters->GetRingContainer())
OSL_ENSURE( &rIter.GetModify() != pRoot, "Client added to active ClientIter" );
}
#endif
@@ -257,15 +257,15 @@ SwClient* SwModify::Remove( SwClient* pDepend )
pR->m_pLeft = pL;
// update ClientIters
- if(SwClientIter::pClientIters)
+ if(SwClientIter::our_pClientIters)
{
- for(auto& rIter : SwClientIter::pClientIters->GetRingContainer())
+ for(auto& rIter : SwClientIter::our_pClientIters->GetRingContainer())
{
- if( rIter.pAct == pDepend || rIter.pDelNext == pDepend )
+ if( rIter.m_pCurrent == pDepend || rIter.m_pPosition == pDepend )
{
// if object being removed is the current or next object in an
// iterator, advance this iterator
- rIter.pDelNext = static_cast<SwClient*>(pR);
+ rIter.m_pPosition = static_cast<SwClient*>(pR);
}
}
}
@@ -361,5 +361,5 @@ bool SwDepend::GetInfo( SfxPoolItem& rInfo ) const
return pToTell ? pToTell->GetInfo( rInfo ) : true;
}
-SwClientIter* SwClientIter::pClientIters = nullptr;
+SwClientIter* SwClientIter::our_pClientIters = nullptr;
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
commit c2655a58527ec6b63af7c1191535d06ff71cee0c
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date: Fri Mar 13 12:36:12 2015 +0100
now inline SwClientIter, its small enough
Change-Id: I2a66c4ee51cd7204300bc7fd9a6fcaf2246bf082
diff --git a/sw/inc/calbck.hxx b/sw/inc/calbck.hxx
index 64eafa8..c0b3ea2 100644
--- a/sw/inc/calbck.hxx
+++ b/sw/inc/calbck.hxx
@@ -221,15 +221,49 @@ class SwClientIter : public sw::Ring<SwClientIter>
// iterator can be limited to return only SwClient objects of a certain type
TypeId aSrchId;
+ static SwClientIter* pClientIters;
+
public:
- SW_DLLPUBLIC SwClientIter( const SwModify& );
- SW_DLLPUBLIC ~SwClientIter();
+ SwClientIter( const SwModify& rModify )
+ : rRoot(rModify)
+ , aSrchId(nullptr)
+ {
+ MoveTo(pClientIters);
+ pClientIters = this;
+ pAct = pDelNext = const_cast<SwClient*>(rRoot.GetDepends());
+ }
+ ~SwClientIter()
+ {
+ assert(pClientIters);
+ if(pClientIters == this)
+ pClientIters = unique() ? nullptr : GetNextInRing();
+ MoveTo(nullptr);
+ }
const SwModify& GetModify() const { return rRoot; }
- SwClient* operator++();
- SwClient* GoStart();
- SwClient* GoEnd();
+ SwClient* operator++()
+ {
+ if( pDelNext == pAct )
+ pDelNext = static_cast<SwClient*>(pDelNext->m_pRight);
+ return pAct = pDelNext;
+ }
+ SwClient* GoStart()
+ {
+ if((pDelNext = const_cast<SwClient*>(rRoot.GetDepends())))
+ while( pDelNext->m_pLeft )
+ pDelNext = static_cast<SwClient*>(pDelNext->m_pLeft);
+ return pAct = pDelNext;
+ }
+ SwClient* GoEnd()
+ {
+ if(!pDelNext)
+ pDelNext = const_cast<SwClient*>(rRoot.GetDepends());
+ if(pDelNext)
+ while( pDelNext->m_pRight )
+ pDelNext = static_cast<SwClient*>(pDelNext->m_pRight);
+ return pAct = pDelNext;
+ }
// returns the current SwClient object;
// in case this was already removed, the object marked down to become
@@ -242,10 +276,41 @@ public:
// SwModify::Add() asserts this
bool IsChanged() const { return pDelNext != pAct; }
- SW_DLLPUBLIC SwClient* First( TypeId nType );
- SW_DLLPUBLIC SwClient* Next();
- SW_DLLPUBLIC SwClient* Last( TypeId nType );
- SW_DLLPUBLIC SwClient* Previous();
+ SwClient* First( TypeId nType )
+ {
+ aSrchId = nType;
+ GoStart();
+ if(!pDelNext)
+ return nullptr;
+ pAct = nullptr;
+ return Next();
+ }
+ SwClient* Last( TypeId nType )
+ {
+ aSrchId = nType;
+ GoEnd();
+ if(!pDelNext)
+ return nullptr;
+ if( pDelNext->IsA( aSrchId ) )
+ return pDelNext;
+ return Previous();
+ }
+ SwClient* Next()
+ {
+ if( pDelNext == pAct )
+ pDelNext = static_cast<SwClient*>(pDelNext->m_pRight);
+ while(pDelNext && !pDelNext->IsA( aSrchId ) )
+ pDelNext = static_cast<SwClient*>(pDelNext->m_pRight);
+ return pAct = pDelNext;
+ }
+
+ SwClient* Previous()
+ {
+ pDelNext = static_cast<SwClient*>(pDelNext->m_pLeft);
+ while(pDelNext && !pDelNext->IsA( aSrchId ) )
+ pDelNext = static_cast<SwClient*>(pDelNext->m_pLeft);
+ return pAct = pDelNext;
+ }
};
#endif
diff --git a/sw/source/core/attr/calbck.cxx b/sw/source/core/attr/calbck.cxx
index 8ca06300..bb0a8dc 100644
--- a/sw/source/core/attr/calbck.cxx
+++ b/sw/source/core/attr/calbck.cxx
@@ -23,7 +23,6 @@
#include <swcache.hxx>
#include <swfntcch.hxx>
-static SwClientIter* pClientIters = nullptr;
TYPEINIT0( SwClient );
@@ -206,9 +205,9 @@ void SwModify::Add( SwClient* pDepend )
if(pDepend->pRegisteredIn != this )
{
#if OSL_DEBUG_LEVEL > 0
- if(pClientIters)
+ if(SwClientIter::pClientIters)
{
- for(auto& rIter : pClientIters->GetRingContainer())
+ for(auto& rIter : SwClientIter::pClientIters->GetRingContainer())
OSL_ENSURE( &rIter.GetModify() != pRoot, "Client added to active ClientIter" );
}
#endif
@@ -258,9 +257,9 @@ SwClient* SwModify::Remove( SwClient* pDepend )
pR->m_pLeft = pL;
// update ClientIters
- if(pClientIters)
+ if(SwClientIter::pClientIters)
{
- for(auto& rIter : pClientIters->GetRingContainer())
+ for(auto& rIter : SwClientIter::pClientIters->GetRingContainer())
{
if( rIter.pAct == pDepend || rIter.pDelNext == pDepend )
{
@@ -362,84 +361,5 @@ bool SwDepend::GetInfo( SfxPoolItem& rInfo ) const
return pToTell ? pToTell->GetInfo( rInfo ) : true;
}
-SwClientIter::SwClientIter( const SwModify& rModify )
- : rRoot(rModify)
- , aSrchId(nullptr)
-{
- MoveTo(pClientIters);
- pClientIters = this;
- pAct = pDelNext = const_cast<SwClient*>(rRoot.GetDepends());
-}
-
-SwClientIter::~SwClientIter()
-{
- assert(pClientIters);
- if(pClientIters == this)
- pClientIters = unique() ? nullptr : GetNextInRing();
- MoveTo(nullptr);
-}
-
-SwClient* SwClientIter::operator++()
-{
- if( pDelNext == pAct )
- pDelNext = static_cast<SwClient*>(pDelNext->m_pRight);
- return pAct = pDelNext;
-}
-
-SwClient* SwClientIter::GoStart()
-{
- if((pDelNext = const_cast<SwClient*>(rRoot.GetDepends())))
- while( pDelNext->m_pLeft )
- pDelNext = static_cast<SwClient*>(pDelNext->m_pLeft);
- return pAct = pDelNext;
-}
-
-SwClient* SwClientIter::GoEnd()
-{
- if(!pDelNext)
- pDelNext = const_cast<SwClient*>(rRoot.GetDepends());
- if(pDelNext)
- while( pDelNext->m_pRight )
- pDelNext = static_cast<SwClient*>(pDelNext->m_pRight);
- return pAct = pDelNext;
-}
-
-SwClient* SwClientIter::First( TypeId nType )
-{
- aSrchId = nType;
- GoStart();
- if(!pDelNext)
- return nullptr;
- pAct = nullptr;
- return Next();
-}
-
-SwClient* SwClientIter::Last( TypeId nType )
-{
- aSrchId = nType;
- GoEnd();
- if(!pDelNext)
- return nullptr;
- if( pDelNext->IsA( aSrchId ) )
- return pDelNext;
- return Previous();
-}
-
-SwClient* SwClientIter::Next()
-{
- if( pDelNext == pAct )
- pDelNext = static_cast<SwClient*>(pDelNext->m_pRight);
- while(pDelNext && !pDelNext->IsA( aSrchId ) )
- pDelNext = static_cast<SwClient*>(pDelNext->m_pRight);
- return pAct = pDelNext;
-}
-
-SwClient* SwClientIter::Previous()
-{
- pDelNext = static_cast<SwClient*>(pDelNext->m_pLeft);
- while(pDelNext && !pDelNext->IsA( aSrchId ) )
- pDelNext = static_cast<SwClient*>(pDelNext->m_pLeft);
- return pAct = pDelNext;
-}
-
+SwClientIter* SwClientIter::pClientIters = nullptr;
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
commit 9378fc5d1fadb10e078bb852144f5cc8b99cc342
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date: Fri Mar 13 02:57:07 2015 +0100
use sw::Ring<>
Change-Id: I1ad4425f557a52dec4e9b068995585b15f61466f
diff --git a/sw/inc/calbck.hxx b/sw/inc/calbck.hxx
index 274bcf6..64eafa8 100644
--- a/sw/inc/calbck.hxx
+++ b/sw/inc/calbck.hxx
@@ -23,6 +23,7 @@
#include <tools/rtti.hxx>
#include "swdllapi.h"
#include <boost/noncopyable.hpp>
+#include <ring.hxx>
class SwModify;
class SwClientIter;
@@ -202,7 +203,7 @@ protected:
virtual void SwClientNotify( const SwModify& rModify, const SfxHint& rHint ) SAL_OVERRIDE;
};
-class SwClientIter
+class SwClientIter : public sw::Ring<SwClientIter>
{
friend SwClient* SwModify::Remove(SwClient *); ///< for pointer adjustments
friend void SwModify::Add(SwClient *pDepend); ///< for pointer adjustments
@@ -217,11 +218,6 @@ class SwClientIter
// this is necessary because iteration requires access to members of the current object
SwClient* pDelNext;
- // SwClientIter objects are tracked in linked list so that they can react
- // when the current (pAct) or marked down (pDelNext) SwClient is removed
- // from its SwModify
- SwClientIter *pNxtIter;
-
// iterator can be limited to return only SwClient objects of a certain type
TypeId aSrchId;
diff --git a/sw/source/core/attr/calbck.cxx b/sw/source/core/attr/calbck.cxx
index 17aabca..8ca06300 100644
--- a/sw/source/core/attr/calbck.cxx
+++ b/sw/source/core/attr/calbck.cxx
@@ -206,11 +206,10 @@ void SwModify::Add( SwClient* pDepend )
if(pDepend->pRegisteredIn != this )
{
#if OSL_DEBUG_LEVEL > 0
- SwClientIter* pTmp = pClientIters;
- while( pTmp )
+ if(pClientIters)
{
- OSL_ENSURE( &pTmp->GetModify() != pRoot, "Client added to active ClientIter" );
- pTmp = pTmp->pNxtIter;
+ for(auto& rIter : pClientIters->GetRingContainer())
+ OSL_ENSURE( &rIter.GetModify() != pRoot, "Client added to active ClientIter" );
}
#endif
// deregister new client in case it is already registered elsewhere
@@ -259,18 +258,18 @@ SwClient* SwModify::Remove( SwClient* pDepend )
pR->m_pLeft = pL;
// update ClientIters
- SwClientIter* pTmp = pClientIters;
- while( pTmp )
+ if(pClientIters)
{
- if( pTmp->pAct == pDepend || pTmp->pDelNext == pDepend )
+ for(auto& rIter : pClientIters->GetRingContainer())
{
- // if object being removed is the current or next object in an
- // iterator, advance this iterator
- pTmp->pDelNext = static_cast<SwClient*>(pR);
+ if( rIter.pAct == pDepend || rIter.pDelNext == pDepend )
+ {
+ // if object being removed is the current or next object in an
+ // iterator, advance this iterator
+ rIter.pDelNext = static_cast<SwClient*>(pR);
+ }
}
- pTmp = pTmp->pNxtIter;
}
-
pDepend->m_pLeft = nullptr;
pDepend->m_pRight = nullptr;
}
@@ -365,32 +364,19 @@ bool SwDepend::GetInfo( SfxPoolItem& rInfo ) const
SwClientIter::SwClientIter( const SwModify& rModify )
: rRoot(rModify)
- , pNxtIter(nullptr)
, aSrchId(nullptr)
{
- if( pClientIters )
- pNxtIter = pClientIters;
+ MoveTo(pClientIters);
pClientIters = this;
-
pAct = pDelNext = const_cast<SwClient*>(rRoot.GetDepends());
}
SwClientIter::~SwClientIter()
{
assert(pClientIters);
- // reorganize list of ClientIters
- if( pClientIters == this )
- pClientIters = pNxtIter;
- else
- {
- SwClientIter* pTmp = pClientIters;
- while( pTmp->pNxtIter != this )
- {
- assert(pTmp);
- pTmp = pTmp->pNxtIter;
- }
- pTmp->pNxtIter = pNxtIter;
- }
+ if(pClientIters == this)
+ pClientIters = unique() ? nullptr : GetNextInRing();
+ MoveTo(nullptr);
}
SwClient* SwClientIter::operator++()
commit 5a0d2a4e927ed0c13468febd814cd1d8cfc11112
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date: Fri Mar 13 01:51:42 2015 +0100
simplify SwClientIter dtor
Change-Id: Ibf41f0c53b0454029601dd1cac479bdd82f50f0c
diff --git a/sw/source/core/attr/calbck.cxx b/sw/source/core/attr/calbck.cxx
index 7ad963d..17aabca 100644
--- a/sw/source/core/attr/calbck.cxx
+++ b/sw/source/core/attr/calbck.cxx
@@ -377,22 +377,19 @@ SwClientIter::SwClientIter( const SwModify& rModify )
SwClientIter::~SwClientIter()
{
- if( pClientIters )
+ assert(pClientIters);
+ // reorganize list of ClientIters
+ if( pClientIters == this )
+ pClientIters = pNxtIter;
+ else
{
- // reorganize list of ClientIters
- if( pClientIters == this )
- pClientIters = pNxtIter;
- else
+ SwClientIter* pTmp = pClientIters;
+ while( pTmp->pNxtIter != this )
{
- SwClientIter* pTmp = pClientIters;
- while( pTmp->pNxtIter != this )
- if( nullptr == ( pTmp = pTmp->pNxtIter ) )
- {
- OSL_ENSURE( this, "Lost my pointer" );
- return ;
- }
- pTmp->pNxtIter = pNxtIter;
+ assert(pTmp);
+ pTmp = pTmp->pNxtIter;
}
+ pTmp->pNxtIter = pNxtIter;
}
}
commit 5730b4b7b20421ed5fce33365b925d640e8e5f21
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date: Fri Mar 13 01:39:39 2015 +0100
simplify SwClientIter ctor
Change-Id: I26771fb62cf55e5375ea23b260eb37bdfdade70a
diff --git a/sw/source/core/attr/calbck.cxx b/sw/source/core/attr/calbck.cxx
index 0967291..7ad963d 100644
--- a/sw/source/core/attr/calbck.cxx
+++ b/sw/source/core/attr/calbck.cxx
@@ -369,18 +369,10 @@ SwClientIter::SwClientIter( const SwModify& rModify )
, aSrchId(nullptr)
{
if( pClientIters )
- {
- // append to list of ClientIters
- SwClientIter* pTmp = pClientIters;
- while( pTmp->pNxtIter )
- pTmp = pTmp->pNxtIter;
- pTmp->pNxtIter = this;
- }
- else
- pClientIters = this;
+ pNxtIter = pClientIters;
+ pClientIters = this;
- pAct = const_cast<SwClient*>(rRoot.GetDepends());
- pDelNext = pAct;
+ pAct = pDelNext = const_cast<SwClient*>(rRoot.GetDepends());
}
SwClientIter::~SwClientIter()
commit 2559e0112ea4bbb1c5f0c1905a13557f99ffedf5
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date: Fri Mar 13 01:08:07 2015 +0100
Last() superficial check
Change-Id: Ic0ded0288e322ac99f0500973c304db60e23c9de
diff --git a/sw/source/core/attr/calbck.cxx b/sw/source/core/attr/calbck.cxx
index d066f7f..0967291 100644
--- a/sw/source/core/attr/calbck.cxx
+++ b/sw/source/core/attr/calbck.cxx
@@ -413,7 +413,7 @@ SwClient* SwClientIter::operator++()
SwClient* SwClientIter::GoStart()
{
- if(pDelNext = const_cast<SwClient*>(rRoot.GetDepends()))
+ if((pDelNext = const_cast<SwClient*>(rRoot.GetDepends())))
while( pDelNext->m_pLeft )
pDelNext = static_cast<SwClient*>(pDelNext->m_pLeft);
return pAct = pDelNext;
@@ -421,7 +421,9 @@ SwClient* SwClientIter::GoStart()
SwClient* SwClientIter::GoEnd()
{
- if(pDelNext = const_cast<SwClient*>(rRoot.GetDepends()))
+ if(!pDelNext)
+ pDelNext = const_cast<SwClient*>(rRoot.GetDepends());
+ if(pDelNext)
while( pDelNext->m_pRight )
pDelNext = static_cast<SwClient*>(pDelNext->m_pRight);
return pAct = pDelNext;
@@ -443,7 +445,7 @@ SwClient* SwClientIter::Last( TypeId nType )
GoEnd();
if(!pDelNext)
return nullptr;
- if( pDelNext && pDelNext->IsA( aSrchId ) )
+ if( pDelNext->IsA( aSrchId ) )
return pDelNext;
return Previous();
}
commit ed02fd49b92d0235e84346dcfbd6850ddbbd0d87
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date: Fri Mar 13 01:06:57 2015 +0100
GoStart() GoEnd() consistency
Change-Id: I4386c9594db950a40ddbfd25fb5383d7ed4b877b
diff --git a/sw/source/core/attr/calbck.cxx b/sw/source/core/attr/calbck.cxx
index 7286bb4..d066f7f 100644
--- a/sw/source/core/attr/calbck.cxx
+++ b/sw/source/core/attr/calbck.cxx
@@ -413,8 +413,7 @@ SwClient* SwClientIter::operator++()
SwClient* SwClientIter::GoStart()
{
- pDelNext = const_cast<SwClient*>(rRoot.GetDepends());
- if(pDelNext)
+ if(pDelNext = const_cast<SwClient*>(rRoot.GetDepends()))
while( pDelNext->m_pLeft )
pDelNext = static_cast<SwClient*>(pDelNext->m_pLeft);
return pAct = pDelNext;
@@ -422,9 +421,7 @@ SwClient* SwClientIter::GoStart()
SwClient* SwClientIter::GoEnd()
{
- if(!pDelNext)
- pDelNext = const_cast<SwClient*>(rRoot.GetDepends());
- if(pDelNext)
+ if(pDelNext = const_cast<SwClient*>(rRoot.GetDepends()))
while( pDelNext->m_pRight )
pDelNext = static_cast<SwClient*>(pDelNext->m_pRight);
return pAct = pDelNext;
commit b76943b02049b32e25dd82bc93c9d8d143245992
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date: Fri Mar 13 00:44:28 2015 +0100
simplify SwClient::Previous() more
Change-Id: If0e80981f248a3a388934025a90502290d5f3c47
diff --git a/sw/source/core/attr/calbck.cxx b/sw/source/core/attr/calbck.cxx
index 3aa874d..7286bb4 100644
--- a/sw/source/core/attr/calbck.cxx
+++ b/sw/source/core/attr/calbck.cxx
@@ -444,6 +444,8 @@ SwClient* SwClientIter::Last( TypeId nType )
{
aSrchId = nType;
GoEnd();
+ if(!pDelNext)
+ return nullptr;
if( pDelNext && pDelNext->IsA( aSrchId ) )
return pDelNext;
return Previous();
@@ -460,12 +462,9 @@ SwClient* SwClientIter::Next()
SwClient* SwClientIter::Previous()
{
- while(pDelNext)
- {
+ pDelNext = static_cast<SwClient*>(pDelNext->m_pLeft);
+ while(pDelNext && !pDelNext->IsA( aSrchId ) )
pDelNext = static_cast<SwClient*>(pDelNext->m_pLeft);
- if( pDelNext && pDelNext->IsA( aSrchId ) )
- break;
- }
return pAct = pDelNext;
}
commit daddc79775960775bdc52d9bbd42e0026ce79aae
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date: Fri Mar 13 00:34:59 2015 +0100
simplify SwClient::Next() more
Change-Id: I7441c17c506f37d2de3658c083179a652f89fcb6
diff --git a/sw/source/core/attr/calbck.cxx b/sw/source/core/attr/calbck.cxx
index 836e8cc..3aa874d 100644
--- a/sw/source/core/attr/calbck.cxx
+++ b/sw/source/core/attr/calbck.cxx
@@ -453,12 +453,8 @@ SwClient* SwClientIter::Next()
{
if( pDelNext == pAct )
pDelNext = static_cast<SwClient*>(pDelNext->m_pRight);
- while(pDelNext)
- {
- if( pDelNext->IsA( aSrchId ) )
- break;
+ while(pDelNext && !pDelNext->IsA( aSrchId ) )
pDelNext = static_cast<SwClient*>(pDelNext->m_pRight);
- }
return pAct = pDelNext;
}
commit d51ba441ee04300c35e7597203b5a327beaf756b
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date: Fri Mar 13 00:28:28 2015 +0100
simplify SwClient::Last() with Previous()
Change-Id: I2cf788b2a4ff9b4073a15f121b7b76451f6ad825
diff --git a/sw/source/core/attr/calbck.cxx b/sw/source/core/attr/calbck.cxx
index 49815da..836e8cc 100644
--- a/sw/source/core/attr/calbck.cxx
+++ b/sw/source/core/attr/calbck.cxx
@@ -444,13 +444,9 @@ SwClient* SwClientIter::Last( TypeId nType )
{
aSrchId = nType;
GoEnd();
- while( pDelNext )
- {
- if( pDelNext->IsA( aSrchId ) )
- break;
- pDelNext = static_cast<SwClient*>(pDelNext->m_pLeft);
- }
- return pAct = pDelNext;
+ if( pDelNext && pDelNext->IsA( aSrchId ) )
+ return pDelNext;
+ return Previous();
}
SwClient* SwClientIter::Next()
commit 1183ef266baea156bade07cc316a4ff27ee1967e
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date: Fri Mar 13 00:18:58 2015 +0100
simplify SwClient::Previous()
Change-Id: Ic120c440ac88c0599180af5aac56ad6d8c9bd974
diff --git a/sw/source/core/attr/calbck.cxx b/sw/source/core/attr/calbck.cxx
index 0dccf1f..49815da 100644
--- a/sw/source/core/attr/calbck.cxx
+++ b/sw/source/core/attr/calbck.cxx
@@ -468,17 +468,13 @@ SwClient* SwClientIter::Next()
SwClient* SwClientIter::Previous()
{
- do {
- if( pDelNext == pAct )
- pAct = static_cast<SwClient*>(pAct->m_pLeft);
- else
- pAct = static_cast<SwClient*>(pDelNext->m_pLeft);
- pDelNext = pAct;
-
- if( pAct && pAct->IsA( aSrchId ) )
+ while(pDelNext)
+ {
+ pDelNext = static_cast<SwClient*>(pDelNext->m_pLeft);
+ if( pDelNext && pDelNext->IsA( aSrchId ) )
break;
- } while( pAct );
- return pAct;
+ }
+ return pAct = pDelNext;
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
commit 4022e29a1aff7f2c8d3cdea860f3a9ab3aa03a03
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date: Thu Mar 12 23:58:18 2015 +0100
simplify SwClient::First() with Next()
Change-Id: If66ab27cbfe47f1cbeb0ed6a340459a8911af65a
diff --git a/sw/source/core/attr/calbck.cxx b/sw/source/core/attr/calbck.cxx
index b84222e..0dccf1f 100644
--- a/sw/source/core/attr/calbck.cxx
+++ b/sw/source/core/attr/calbck.cxx
@@ -434,13 +434,10 @@ SwClient* SwClientIter::First( TypeId nType )
{
aSrchId = nType;
GoStart();
- while( pDelNext )
- {
- if( pDelNext->IsA( aSrchId ) )
- break;
- pDelNext = static_cast<SwClient*>(pDelNext->m_pRight);
- }
- return pAct = pDelNext;
+ if(!pDelNext)
+ return nullptr;
+ pAct = nullptr;
+ return Next();
}
SwClient* SwClientIter::Last( TypeId nType )
commit 43d870a01d3b0c0fe956114669f6146d2b20447b
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date: Thu Mar 12 23:40:04 2015 +0100
simplify SwClient::Next()
Change-Id: I543786f6bb325ba531bf8600ca5b9717efd4535c
diff --git a/sw/source/core/attr/calbck.cxx b/sw/source/core/attr/calbck.cxx
index c5de756..b84222e 100644
--- a/sw/source/core/attr/calbck.cxx
+++ b/sw/source/core/attr/calbck.cxx
@@ -458,19 +458,15 @@ SwClient* SwClientIter::Last( TypeId nType )
SwClient* SwClientIter::Next()
{
- do {
- if( pDelNext == pAct )
- {
- pAct = static_cast<SwClient*>(pAct->m_pRight);
- pDelNext = pAct;
- }
- else
- pAct = pDelNext;
-
- if( pAct && pAct->IsA( aSrchId ) )
+ if( pDelNext == pAct )
+ pDelNext = static_cast<SwClient*>(pDelNext->m_pRight);
+ while(pDelNext)
+ {
+ if( pDelNext->IsA( aSrchId ) )
break;
- } while( pAct );
- return pAct;
+ pDelNext = static_cast<SwClient*>(pDelNext->m_pRight);
+ }
+ return pAct = pDelNext;
}
SwClient* SwClientIter::Previous()
commit 9a74f77cb5e275bc7af876538fcf3f1d05f76567
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date: Thu Mar 12 23:07:23 2015 +0100
simplify SwClient::Last()
Change-Id: I16639d345fef0fa578d30e43d6283e54bbd52b5b
diff --git a/sw/source/core/attr/calbck.cxx b/sw/source/core/attr/calbck.cxx
index ac3926d..c5de756 100644
--- a/sw/source/core/attr/calbck.cxx
+++ b/sw/source/core/attr/calbck.cxx
@@ -447,18 +447,13 @@ SwClient* SwClientIter::Last( TypeId nType )
{
aSrchId = nType;
GoEnd();
- if( pAct )
- do {
- if( pAct->IsA( aSrchId ) )
- break;
-
- if( pDelNext == pAct )
- pAct = static_cast<SwClient*>(pAct->m_pLeft);
- else
- pAct = static_cast<SwClient*>(pDelNext->m_pLeft);
- pDelNext = pAct;
- } while( pAct );
- return pAct;
+ while( pDelNext )
+ {
+ if( pDelNext->IsA( aSrchId ) )
+ break;
+ pDelNext = static_cast<SwClient*>(pDelNext->m_pLeft);
+ }
+ return pAct = pDelNext;
}
SwClient* SwClientIter::Next()
commit f811ac1a1940bb58808803d29b77fdc3218568ee
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date: Thu Mar 12 22:59:25 2015 +0100
simplify SwClient::First()
Change-Id: I6c0f5214bbdc34abb9d94795f4f60b58c178a368
diff --git a/sw/source/core/attr/calbck.cxx b/sw/source/core/attr/calbck.cxx
index 6e775b8..ac3926d 100644
--- a/sw/source/core/attr/calbck.cxx
+++ b/sw/source/core/attr/calbck.cxx
@@ -434,20 +434,13 @@ SwClient* SwClientIter::First( TypeId nType )
{
aSrchId = nType;
GoStart();
- if( pAct )
- do {
- if( pAct->IsA( aSrchId ) )
- break;
-
- if( pDelNext == pAct )
- {
- pAct = static_cast<SwClient*>(pAct->m_pRight);
- pDelNext = pAct;
- }
- else
- pAct = pDelNext;
- } while( pAct );
- return pAct;
+ while( pDelNext )
+ {
+ if( pDelNext->IsA( aSrchId ) )
+ break;
+ pDelNext = static_cast<SwClient*>(pDelNext->m_pRight);
+ }
+ return pAct = pDelNext;
}
SwClient* SwClientIter::Last( TypeId nType )
commit f4ebba6af836c55fefcec44be590d8411622f7c1
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date: Thu Mar 12 22:49:02 2015 +0100
simplify SwClient::GoEnd()
Change-Id: I6c2d55c8b748946543ddce72130f900b738418ef
diff --git a/sw/source/core/attr/calbck.cxx b/sw/source/core/attr/calbck.cxx
index 835a2d9..6e775b8 100644
--- a/sw/source/core/attr/calbck.cxx
+++ b/sw/source/core/attr/calbck.cxx
@@ -422,16 +422,12 @@ SwClient* SwClientIter::GoStart()
SwClient* SwClientIter::GoEnd()
{
- pAct = pDelNext;
- if( !pAct )
- pAct = const_cast<SwClient*>(rRoot.GetDepends());
- if( pAct )
- {
- while( pAct->m_pRight )
- pAct = static_cast<SwClient*>(pAct->m_pRight);
- }
- pDelNext = pAct;
- return pAct;
+ if(!pDelNext)
+ pDelNext = const_cast<SwClient*>(rRoot.GetDepends());
+ if(pDelNext)
+ while( pDelNext->m_pRight )
+ pDelNext = static_cast<SwClient*>(pDelNext->m_pRight);
+ return pAct = pDelNext;
}
SwClient* SwClientIter::First( TypeId nType )
commit 81618ec397128e4853c9aa6ce4fcd850ff11e876
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date: Thu Mar 12 22:39:06 2015 +0100
simplify SwClient::GoStart()
Change-Id: Ic1916f86f1a3797d37a6102aa32ca7d2bd92f78e
diff --git a/sw/source/core/attr/calbck.cxx b/sw/source/core/attr/calbck.cxx
index b3cd51b..835a2d9 100644
--- a/sw/source/core/attr/calbck.cxx
+++ b/sw/source/core/attr/calbck.cxx
@@ -413,14 +413,11 @@ SwClient* SwClientIter::operator++()
SwClient* SwClientIter::GoStart()
{
- pAct = const_cast<SwClient*>(rRoot.GetDepends());
- if( pAct )
- {
- while( pAct->m_pLeft )
- pAct = static_cast<SwClient*>(pAct->m_pLeft);
- }
- pDelNext = pAct;
- return pAct;
+ pDelNext = const_cast<SwClient*>(rRoot.GetDepends());
+ if(pDelNext)
+ while( pDelNext->m_pLeft )
+ pDelNext = static_cast<SwClient*>(pDelNext->m_pLeft);
+ return pAct = pDelNext;
}
SwClient* SwClientIter::GoEnd()
commit 56a335c259db8aea74452bd7a88ac37c6e5635b4
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date: Thu Mar 12 22:29:12 2015 +0100
simplify SwClient::operator++()
Change-Id: I17bdfb4cec60a4f9b18b7df3ba4c131771ba0f08
diff --git a/sw/source/core/attr/calbck.cxx b/sw/source/core/attr/calbck.cxx
index 89281e3..b3cd51b 100644
--- a/sw/source/core/attr/calbck.cxx
+++ b/sw/source/core/attr/calbck.cxx
@@ -407,13 +407,8 @@ SwClientIter::~SwClientIter()
SwClient* SwClientIter::operator++()
{
if( pDelNext == pAct )
- {
- pAct = static_cast<SwClient*>(pAct->m_pRight);
- pDelNext = pAct;
- }
- else
- pAct = pDelNext;
- return pAct;
+ pDelNext = static_cast<SwClient*>(pDelNext->m_pRight);
+ return pAct = pDelNext;
}
SwClient* SwClientIter::GoStart()
commit 23fd991fda81668b3998b21b0131dda77965e405
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date: Tue Mar 10 00:57:49 2015 +0100
separate the sane from the less sane in SwClient
Change-Id: Ie641019e0de26fc73ffb51b825fef2cc072adc6e
diff --git a/sw/inc/calbck.hxx b/sw/inc/calbck.hxx
index 68fa315..274bcf6 100644
--- a/sw/inc/calbck.hxx
+++ b/sw/inc/calbck.hxx
@@ -56,23 +56,43 @@ class SfxHint;
code gets polluted by pointer casts (see switerator.hxx).
*/
+class SwModify;
+class SwClient;
+class SwClientIter;
+namespace sw
+{
+ /// refactoring out the some of the more sane SwClient functionality
+ class SW_DLLPUBLIC WriterListener : ::boost::noncopyable
+ {
+ friend class ::SwModify;
+ friend class ::SwClient;
+ friend class ::SwClientIter;
+ private:
+ WriterListener* m_pLeft;
+ WriterListener* m_pRight; ///< double-linked list of other clients
+ protected:
+ WriterListener()
+ : m_pLeft(nullptr), m_pRight(nullptr)
+ {}
+ virtual ~WriterListener() {};
+ // callbacks received from SwModify (friend class - so these methods can be private)
+ // should be called only from SwModify the client is registered in
+ // mba: IMHO these methods should be pure virtual
+ virtual void Modify(const SfxPoolItem*, const SfxPoolItem*) {};
+ virtual void SwClientNotify( const SwModify&, const SfxHint&) {};
+ public:
+ bool IsLast() const { return !m_pLeft && !m_pRight; }
+ };
+}
// SwClient
-
-class SW_DLLPUBLIC SwClient : ::boost::noncopyable
+class SW_DLLPUBLIC SwClient : ::sw::WriterListener
{
// avoids making the details of the linked list and the callback method public
friend class SwModify;
friend class SwClientIter;
- SwClient *pLeft, *pRight; ///< double-linked list of other clients
SwModify *pRegisteredIn; ///< event source
- // callbacks received from SwModify (friend class - so these methods can be private)
- // should be called only from SwModify the client is registered in
- // mba: IMHO these methods should be pure virtual
- virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew);
- virtual void SwClientNotify( const SwModify& rModify, const SfxHint& rHint );
-
protected:
// single argument ctors shall be explicit.
explicit SwClient(SwModify *pToRegisterIn);
@@ -82,8 +102,9 @@ protected:
public:
- inline SwClient();
+ SwClient() : pRegisteredIn(nullptr) {}
virtual ~SwClient();
+ virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew);
// in case an SwModify object is destroyed that itself is registered in another SwModify,
// its SwClient objects can decide to get registered to the latter instead by calling this method
@@ -91,12 +112,11 @@ public:
// controlled access to Modify method
// mba: this is still considered a hack and it should be fixed; the name makes grep-ing easier
- void ModifyNotification( const SfxPoolItem *pOldValue, const SfxPoolItem *pNewValue ) { Modify ( pOldValue, pNewValue ); }
+ void ModifyNotification( const SfxPoolItem *pOldValue, const SfxPoolItem *pNewValue ) { this->Modify ( pOldValue, pNewValue ); }
void SwClientNotifyCall( const SwModify& rModify, const SfxHint& rHint ) { SwClientNotify( rModify, rHint ); }
const SwModify* GetRegisteredIn() const { return pRegisteredIn; }
SwModify* GetRegisteredIn() { return pRegisteredIn; }
- bool IsLast() const { return !pLeft && !pRight; }
// needed for class SwClientIter
TYPEINFO();
@@ -105,16 +125,13 @@ public:
virtual bool GetInfo( SfxPoolItem& ) const;
};
-inline SwClient::SwClient() :
- pLeft(0), pRight(0), pRegisteredIn(0)
-{}
// SwModify
// class has a doubly linked list for dependencies
class SW_DLLPUBLIC SwModify: public SwClient
{
- SwClient* pRoot; // the start of the linked list of clients
+ sw::WriterListener* pRoot; // the start of the linked list of clients
bool bModifyLocked : 1; // don't broadcast changes now
bool bLockClientList : 1; // may be set when this instance notifies its clients
bool bInDocDTOR : 1; // workaround for problems when a lot of objects are destroyed
@@ -144,7 +161,7 @@ public:
void Add(SwClient *pDepend);
SwClient* Remove(SwClient *pDepend);
- const SwClient* GetDepends() const { return pRoot; }
+ const SwClient* GetDepends() const { return static_cast<SwClient*>(pRoot); }
// get information about attribute
virtual bool GetInfo( SfxPoolItem& ) const SAL_OVERRIDE;
diff --git a/sw/source/core/attr/calbck.cxx b/sw/source/core/attr/calbck.cxx
index a06bba2..89281e3 100644
--- a/sw/source/core/attr/calbck.cxx
+++ b/sw/source/core/attr/calbck.cxx
@@ -28,7 +28,7 @@ static SwClientIter* pClientIters = nullptr;
TYPEINIT0( SwClient );
SwClient::SwClient( SwModify* pToRegisterIn )
- : pLeft( nullptr ), pRight( nullptr ), pRegisteredIn( nullptr )
+ : pRegisteredIn( nullptr )
{
if(pToRegisterIn)
// connect to SwModify
@@ -63,10 +63,6 @@ void SwClient::Modify( const SfxPoolItem* pOldValue, const SfxPoolItem* pNewValu
CheckRegistration( pOldValue, pNewValue );
}
-void SwClient::SwClientNotify( const SwModify&, const SfxHint& )
-{
-}
-
SwClient::~SwClient()
{
OSL_ENSURE( !pRegisteredIn || pRegisteredIn->GetDepends(), "SwModify still known, but Client already disconnected!" );
@@ -135,7 +131,7 @@ SwModify::~SwModify()
// remove all clients that have not done themselves
// mba: possibly a hotfix for forgotten base class calls?!
while( pRoot )
- pRoot->CheckRegistration( &aDyObject, &aDyObject );
+ static_cast<SwClient*>(pRoot)->CheckRegistration( &aDyObject, &aDyObject );
}
}
}
@@ -225,17 +221,17 @@ void SwModify::Add( SwClient* pDepend )
{
// first client added
pRoot = pDepend;
- pRoot->pLeft = nullptr;
- pRoot->pRight = nullptr;
+ pRoot->m_pLeft = nullptr;
+ pRoot->m_pRight = nullptr;
}
else
{
// append client
- pDepend->pRight = pRoot->pRight;
- pRoot->pRight = pDepend;
- pDepend->pLeft = pRoot;
- if( pDepend->pRight )
- pDepend->pRight->pLeft = pDepend;
+ pDepend->m_pRight = pRoot->m_pRight;
+ pRoot->m_pRight = pDepend;
+ pDepend->m_pLeft = pRoot;
+ if( pDepend->m_pRight )
+ pDepend->m_pRight->m_pLeft = pDepend;
}
// connect client to me
@@ -252,15 +248,15 @@ SwClient* SwModify::Remove( SwClient* pDepend )
{
// SwClient is my listener
// remove it from my list
- SwClient* pR = pDepend->pRight;
- SwClient* pL = pDepend->pLeft;
+ ::sw::WriterListener* pR = pDepend->m_pRight;
+ ::sw::WriterListener* pL = pDepend->m_pLeft;
if( pRoot == pDepend )
pRoot = pL ? pL : pR;
if( pL )
- pL->pRight = pR;
+ pL->m_pRight = pR;
if( pR )
- pR->pLeft = pL;
+ pR->m_pLeft = pL;
// update ClientIters
SwClientIter* pTmp = pClientIters;
@@ -270,13 +266,13 @@ SwClient* SwModify::Remove( SwClient* pDepend )
{
// if object being removed is the current or next object in an
// iterator, advance this iterator
- pTmp->pDelNext = pR;
+ pTmp->pDelNext = static_cast<SwClient*>(pR);
}
pTmp = pTmp->pNxtIter;
}
- pDepend->pLeft = nullptr;
- pDepend->pRight = nullptr;
+ pDepend->m_pLeft = nullptr;
+ pDepend->m_pRight = nullptr;
}
else
{
@@ -412,7 +408,7 @@ SwClient* SwClientIter::operator++()
{
if( pDelNext == pAct )
{
- pAct = pAct->pRight;
+ pAct = static_cast<SwClient*>(pAct->m_pRight);
pDelNext = pAct;
}
else
@@ -425,8 +421,8 @@ SwClient* SwClientIter::GoStart()
pAct = const_cast<SwClient*>(rRoot.GetDepends());
if( pAct )
{
- while( pAct->pLeft )
- pAct = pAct->pLeft;
+ while( pAct->m_pLeft )
+ pAct = static_cast<SwClient*>(pAct->m_pLeft);
}
pDelNext = pAct;
return pAct;
@@ -439,8 +435,8 @@ SwClient* SwClientIter::GoEnd()
pAct = const_cast<SwClient*>(rRoot.GetDepends());
if( pAct )
{
- while( pAct->pRight )
- pAct = pAct->pRight;
+ while( pAct->m_pRight )
+ pAct = static_cast<SwClient*>(pAct->m_pRight);
}
pDelNext = pAct;
return pAct;
@@ -457,7 +453,7 @@ SwClient* SwClientIter::First( TypeId nType )
if( pDelNext == pAct )
{
- pAct = pAct->pRight;
+ pAct = static_cast<SwClient*>(pAct->m_pRight);
pDelNext = pAct;
}
else
@@ -476,9 +472,9 @@ SwClient* SwClientIter::Last( TypeId nType )
break;
if( pDelNext == pAct )
- pAct = pAct->pLeft;
+ pAct = static_cast<SwClient*>(pAct->m_pLeft);
else
- pAct = pDelNext->pLeft;
+ pAct = static_cast<SwClient*>(pDelNext->m_pLeft);
pDelNext = pAct;
} while( pAct );
return pAct;
@@ -489,7 +485,7 @@ SwClient* SwClientIter::Next()
do {
if( pDelNext == pAct )
{
- pAct = pAct->pRight;
+ pAct = static_cast<SwClient*>(pAct->m_pRight);
pDelNext = pAct;
}
else
@@ -505,9 +501,9 @@ SwClient* SwClientIter::Previous()
{
do {
if( pDelNext == pAct )
- pAct = pAct->pLeft;
+ pAct = static_cast<SwClient*>(pAct->m_pLeft);
else
- pAct = pDelNext->pLeft;
+ pAct = static_cast<SwClient*>(pDelNext->m_pLeft);
pDelNext = pAct;
if( pAct && pAct->IsA( aSrchId ) )
More information about the Libreoffice-commits
mailing list