ooo-build r12608 - in trunk: . patches/test



Author: kyoshida
Date: Tue May 20 15:49:27 2008
New Revision: 12608
URL: http://svn.gnome.org/viewvc/ooo-build?rev=12608&view=rev

Log:
2008-05-20  Kohei Yoshida  <kyoshida novell com>

	* patches/test/sfx-broadcaster-hashset-svtools.diff: pimpl up the 
	broadcaster and listener classes since they are exported to other 
	modules.


Modified:
   trunk/ChangeLog
   trunk/patches/test/sfx-broadcaster-hashset-svtools.diff

Modified: trunk/patches/test/sfx-broadcaster-hashset-svtools.diff
==============================================================================
--- trunk/patches/test/sfx-broadcaster-hashset-svtools.diff	(original)
+++ trunk/patches/test/sfx-broadcaster-hashset-svtools.diff	Tue May 20 15:49:27 2008
@@ -1,8 +1,8 @@
 diff --git a/svtools/inc/svtools/brdcst.hxx b/svtools/inc/svtools/brdcst.hxx
-index 6734f63..8d02b30 100644
+index 6734f63..105f69d 100644
 --- svtools/inc/svtools/brdcst.hxx
 +++ svtools/inc/svtools/brdcst.hxx
-@@ -31,35 +31,34 @@
+@@ -31,35 +31,25 @@
  #define _SFXBRDCST_HXX
  
  #include "svtools/svldllapi.h"
@@ -10,7 +10,7 @@
  #include <tools/rtti.hxx>
 -#include <svtools/svarray.hxx>
 +
-+#include <hash_set>
++#include <memory>
  
  class SfxListener;
  class SfxHint;
@@ -23,21 +23,14 @@
 -		Forward( rBC, rHint )
 -
 -//-------------------------------------------------------------------------
-+struct SfxListenerHash
-+{
-+    size_t operator()(SfxListener* p) const
-+    {
-+        return reinterpret_cast<size_t>(p);
-+    }
-+};
++struct SfxBroadcasterImpl;
  
  class SVL_DLLPUBLIC SfxBroadcaster
  {
- friend class SfxListener;
- 
+-friend class SfxListener;
+-
 -	SfxListenerArr_Impl 	aListeners;
-+	typedef ::std::hash_set<SfxListener*, SfxListenerHash> ListenerArray;
-+	ListenerArray			maListeners;
++    ::std::auto_ptr<SfxBroadcasterImpl> mpImpl;
  
  private:
 -	BOOL		 AddListener( SfxListener& rListener );
@@ -51,7 +44,7 @@
  	virtual void			ListenersGone();
  
  public:
-@@ -73,10 +72,11 @@ public:
+@@ -73,10 +63,11 @@ public:
  	void					BroadcastDelayed( const SfxHint& rHint );
  	void					BroadcastInIdle( const SfxHint& rHint );
  
@@ -67,10 +60,10 @@
  
  #endif
 diff --git a/svtools/inc/svtools/lstner.hxx b/svtools/inc/svtools/lstner.hxx
-index e60c028..805a472 100644
+index e60c028..47cdbc5 100644
 --- svtools/inc/svtools/lstner.hxx
 +++ svtools/inc/svtools/lstner.hxx
-@@ -31,24 +31,26 @@
+@@ -31,24 +31,19 @@
  #define _SFXLSTNER_HXX
  
  #include "svtools/svldllapi.h"
@@ -78,7 +71,7 @@
  #include <tools/rtti.hxx>
 -#include <svtools/svarray.hxx>
 +
-+#include <hash_set>
++#include <memory>
  
  class SfxBroadcaster;
  class SfxHint;
@@ -91,23 +84,16 @@
 -		Notify( rBC, rHint )
 -
 -//-------------------------------------------------------------------------
-+struct SfxBroadcasterHash
-+{
-+    size_t operator()(SfxBroadcaster* p) const
-+    {
-+        return reinterpret_cast<size_t>(p);
-+    }
-+};
++struct SfxListenerImpl;
  
  class SVL_DLLPUBLIC SfxListener
  {
 -	SfxBroadcasterArr_Impl aBCs;
-+	typedef ::std::hash_multiset<SfxBroadcaster*, SfxBroadcasterHash> BroadcasterArray;
-+	BroadcasterArray maBCs;
++    ::std::auto_ptr<SfxListenerImpl> mpImpl;
  
  private:
  	const SfxListener&	operator=(const SfxListener &); // n.i., ist verboten
-@@ -62,14 +64,12 @@ public:
+@@ -62,14 +57,12 @@ public:
  
  	BOOL				StartListening( SfxBroadcaster& rBroadcaster, BOOL bPreventDups = FALSE );
  	BOOL				EndListening( SfxBroadcaster& rBroadcaster, BOOL bAllDups = FALSE );
@@ -139,10 +125,10 @@
  
  //////////////////////// SfxStyleSheetPool ///////////////////////////////
 diff --git a/svtools/source/notify/brdcst.cxx b/svtools/source/notify/brdcst.cxx
-index 4e7f5c5..c6dd206 100644
+index 4e7f5c5..c0f3291 100644
 --- svtools/source/notify/brdcst.cxx
 +++ svtools/source/notify/brdcst.cxx
-@@ -39,17 +39,86 @@
+@@ -39,17 +39,111 @@
  #include <svtools/smplhint.hxx>
  #include <svtools/lstner.hxx>
  
@@ -152,6 +138,7 @@
  #include <svtools/brdcst.hxx>
  
 +#include <algorithm>
++#include <hash_set>
 +
 +using ::std::find;
 +using ::std::unary_function;
@@ -162,6 +149,30 @@
  
  //====================================================================
  
++struct SfxListenerHash
++{
++    size_t operator()(SfxListener* p) const
++    {
++        return reinterpret_cast<size_t>(p);
++    }
++};
++
++typedef ::std::hash_set<SfxListener*, SfxListenerHash> ListenerArray;
++
++struct SfxBroadcasterImpl
++{
++	ListenerArray   maListeners;
++
++    SfxBroadcasterImpl() {}
++
++    explicit SfxBroadcasterImpl(const SfxBroadcasterImpl& r) :
++        maListeners(r.maListeners)
++    {
++    }
++};
++
++// ----------------------------------------------------------------------------
++
 +class NotifyListenerFunc : public unary_function<SfxListener*, void>
 +{
 +public:
@@ -232,12 +243,12 @@
  //====================================================================
  // broadcast immediately
  
-@@ -59,25 +128,11 @@ void SfxBroadcaster::Broadcast( const SfxHint &rHint )
+@@ -59,25 +153,28 @@ void SfxBroadcaster::Broadcast( const SfxHint &rHint )
  	DBG_CHKTHIS(SfxBroadcaster, 0);
  
  	// is anybody to notify?
 -	if ( aListeners.Count() /*! || aGlobListeners.Count() */ )
-+	if ( !maListeners.empty() /*! || aGlobListeners.Count() */ )
++	if ( !mpImpl->maListeners.empty() /*! || aGlobListeners.Count() */ )
  	{
 -        #if 0
 -		// determine the type only once, because of its expensiveness
@@ -256,12 +267,29 @@
 -				pListener->Notify( *this, rHint );
 -                #endif
 -		}
++#if 1
++        ListenerArray::iterator itrEnd = mpImpl->maListeners.end();
++        for (ListenerArray::iterator itr = mpImpl->maListeners.begin(); itr != itrEnd; ++itr)
++        {
++            SfxListener* pLis = *itr;
++            unsigned int nFoo = reinterpret_cast<unsigned int>(pLis);
++            fprintf(stdout, "SfxBroadcaster::Broadcast:   notifying listener = %p (%d)\n", pLis, nFoo);fflush(stdout);
++            if (pLis && nFoo > 20)
++            {
++                fprintf(stdout, "SfxBroadcaster::Broadcast:   notifying\n");
++                pLis->Notify(*this, rHint);
++            }
++            else
++                fprintf(stdout, "SfxBroadcaster::Broadcast:   not\n");
++        }
++#else
 +        NotifyListenerFunc f(rHint, *this);
-+        for_each(maListeners.begin(), maListeners.end(), f);
++        for_each(mpImpl->maListeners.begin(), mpImpl->maListeners.end(), f);
++#endif
  	}
  }
  
-@@ -111,12 +166,8 @@ SfxBroadcaster::~SfxBroadcaster()
+@@ -111,19 +208,16 @@ SfxBroadcaster::~SfxBroadcaster()
  	Broadcast( SfxSimpleHint(SFX_HINT_DYING) );
  
  	// remove all still registered listeners
@@ -272,11 +300,26 @@
 -			pListener->RemoveBroadcaster_Impl(*this);
 -	}
 +    UnregisterListenerFunc f(*this);
-+    for_each(maListeners.begin(), maListeners.end(), f);
++    for_each(mpImpl->maListeners.begin(), mpImpl->maListeners.end(), f);
  }
  
  //--------------------------------------------------------------------
-@@ -137,12 +188,8 @@ SfxBroadcaster::SfxBroadcaster( const SfxBroadcaster &rBC )
+ 
+ // simple ctor of class SfxBroadcaster
+ 
+-SfxBroadcaster::SfxBroadcaster()
++SfxBroadcaster::SfxBroadcaster() :
++    mpImpl(new SfxBroadcasterImpl)
+ {
+ 	DBG_CTOR(SfxBroadcaster, 0);
+ }
+@@ -133,16 +227,13 @@ SfxBroadcaster::SfxBroadcaster()
+ // copy ctor of class SfxBroadcaster
+ 
+ 
+-SfxBroadcaster::SfxBroadcaster( const SfxBroadcaster &rBC )
++SfxBroadcaster::SfxBroadcaster( const SfxBroadcaster &rBC ) :
++    mpImpl(new SfxBroadcasterImpl(*rBC.mpImpl))
  {
  	DBG_CTOR(SfxBroadcaster, 0);
  
@@ -287,11 +330,11 @@
 -			pListener->StartListening( *this );
 -	}
 +    RegisterListenerFunc f(*this);
-+    for_each(rBC.maListeners.begin(), rBC.maListeners.end(), f);
++    for_each(rBC.mpImpl->maListeners.begin(), rBC.mpImpl->maListeners.end(), f);
  }
  
  //--------------------------------------------------------------------
-@@ -152,21 +199,8 @@ SfxBroadcaster::SfxBroadcaster( const SfxBroadcaster &rBC )
+@@ -152,21 +243,9 @@ SfxBroadcaster::SfxBroadcaster( const SfxBroadcaster &rBC )
  BOOL SfxBroadcaster::AddListener( SfxListener& rListener )
  {
  	DBG_CHKTHIS(SfxBroadcaster, 0);
@@ -311,11 +354,12 @@
 -	DBG_ASSERT( USHRT_MAX != aListeners.GetPos(pListener),
 -				"AddListener failed" );
 +	SfxListener *pListener = &rListener;
-+    maListeners.insert(pListener);
++    fprintf(stdout, "SfxBroadcaster::AddListener:   adding listener %p\n", pListener);
++    mpImpl->maListeners.insert(pListener);
  	return TRUE;
  }
  
-@@ -182,17 +216,10 @@ void SfxBroadcaster::ListenersGone()
+@@ -182,17 +261,10 @@ void SfxBroadcaster::ListenersGone()
  //--------------------------------------------------------------------
  
  // forward a notification to all registered listeners
@@ -332,11 +376,11 @@
 -			pListener->SFX_NOTIFY( rBC, rBCType, rHint, rHintType);
 -	}
 +    NotifyListenerFunc f(rHint, rBC);
-+    for_each(maListeners.begin(), maListeners.end(), f);
++    for_each(mpImpl->maListeners.begin(), mpImpl->maListeners.end(), f);
  }
  
  //--------------------------------------------------------------------
-@@ -202,10 +229,14 @@ void SfxBroadcaster::SFX_FORWARD(SfxBroadcaster& rBC, const TypeId& rBCType,
+@@ -202,10 +274,23 @@ void SfxBroadcaster::SFX_FORWARD(SfxBroadcaster& rBC, const TypeId& rBCType,
  void SfxBroadcaster::RemoveListener( SfxListener& rListener )
  {
  	{DBG_CHKTHIS(SfxBroadcaster, 0);}
@@ -345,17 +389,26 @@
 -	DBG_ASSERT( nPos != USHRT_MAX, "RemoveListener: Listener unknown" );
 -	aListeners.GetData()[nPos] = 0;
 +	SfxListener *pListener = &rListener;
-+    ListenerArray::iterator itr = find(maListeners.begin(), maListeners.end(), pListener);
-+    if (itr == maListeners.end())
++    fprintf(stdout, "SfxBroadcaster::RemoveListener:   removing listener %p\n", pListener);
++    ListenerArray::iterator itr = find(mpImpl->maListeners.begin(), mpImpl->maListeners.end(), pListener);
++    if (itr == mpImpl->maListeners.end())
++    {
++        fprintf(stdout, "SfxBroadcaster::RemoveListener:   listener not found!\n");
 +        // listener not found!
 +        return;
++    }
 +
-+    maListeners.erase(itr);
++    fprintf(stdout, "SfxBroadcaster::RemoveListener:   # listeners before removal: %d\n", mpImpl->maListeners.size());
++    mpImpl->maListeners.erase(itr);
++
++    fprintf(stdout, "SfxBroadcaster::RemoveListener:   # listeners after removal: %d\n", mpImpl->maListeners.size());
++    for (itr = mpImpl->maListeners.begin(); itr != mpImpl->maListeners.end(); ++itr)
++        fprintf(stdout, "SfxBroadcaster::RemoveListener:   - listener %p\n", *itr);
 +
  	if ( !HasListeners() )
  		ListenersGone();
  }
-@@ -214,10 +245,22 @@ void SfxBroadcaster::RemoveListener( SfxListener& rListener )
+@@ -214,10 +299,22 @@ void SfxBroadcaster::RemoveListener( SfxListener& rListener )
  
  BOOL SfxBroadcaster::HasListeners() const
  {
@@ -363,7 +416,7 @@
 -		if ( aListeners.GetObject(n) != 0 )
 -			return TRUE;
 -	return FALSE;
-+    return !maListeners.empty();
++    return !mpImpl->maListeners.empty();
  }
  
 -//--------------------------------------------------------------------
@@ -371,23 +424,23 @@
 +
 +size_t SfxBroadcaster::GetListenerCount() const
 +{
-+    return maListeners.size();
++    return mpImpl->maListeners.size();
 +}
 +
 +SfxListener* SfxBroadcaster::GetListener( size_t nNo ) const
 +{
-+    if (nNo >= maListeners.size())
++    if (nNo >= mpImpl->maListeners.size())
 +        return NULL;
 +
-+    ListenerArray::const_iterator itr = maListeners.begin();
++    ListenerArray::const_iterator itr = mpImpl->maListeners.begin();
 +    ::std::advance(itr, nNo);
 +    return *itr;
 +}
 diff --git a/svtools/source/notify/lstner.cxx b/svtools/source/notify/lstner.cxx
-index 25246c0..e4897d8 100644
+index 25246c0..660dcb1 100644
 --- svtools/source/notify/lstner.cxx
 +++ svtools/source/notify/lstner.cxx
-@@ -39,16 +39,56 @@
+@@ -39,20 +39,88 @@
  
  #include <svtools/hint.hxx>
  #include <svtools/brdcst.hxx>
@@ -395,6 +448,7 @@
  
 -SV_DECL_PTRARR( SfxBroadcasterArr_Impl, SfxBroadcaster*, 0, 2 )
 +#include <algorithm>
++#include <hash_set>
  
 -#define _SFX_LSTNER_CXX
 -#include <svtools/lstner.hxx>
@@ -406,6 +460,32 @@
  DBG_NAME(SfxListener)
  TYPEINIT0(SfxListener);
  
++// ----------------------------------------------------------------------------
++
++struct SfxBroadcasterHash
++{
++    size_t operator()(SfxBroadcaster* p) const
++    {
++        return reinterpret_cast<size_t>(p);
++    }
++};
++
++typedef ::std::hash_multiset<SfxBroadcaster*, SfxBroadcasterHash> BroadcasterArray;
++
++struct SfxListenerImpl
++{
++	BroadcasterArray maBCs;
++
++    SfxListenerImpl() {}
++
++    SfxListenerImpl(const SfxListenerImpl& r) :
++        maBCs(r.maBCs)
++    {
++    }
++};
++
++// ----------------------------------------------------------------------------
++
 +class StartListeningToBC : public unary_function<SfxBroadcaster*, void>
 +{
 +public:
@@ -447,21 +527,32 @@
  //====================================================================
  // simple ctor of class SfxListener
  
-@@ -63,10 +103,10 @@ SfxListener::SfxListener()
- SfxListener::SfxListener( const SfxListener &rListener )
+-SfxListener::SfxListener()
++SfxListener::SfxListener() :
++    mpImpl(new SfxListenerImpl)
+ {
+ 	DBG_CTOR(SfxListener, 0);
+ }
+@@ -60,13 +128,14 @@ SfxListener::SfxListener()
+ 
+ // copy ctor of class SfxListener
+ 
+-SfxListener::SfxListener( const SfxListener &rListener )
++SfxListener::SfxListener( const SfxListener &rListener ) :
++    mpImpl(new SfxListenerImpl(*rListener.mpImpl))
  {
  	DBG_CTOR(SfxListener, 0);
 -
 -	for ( USHORT n = 0; n < rListener.aBCs.Count(); ++n )
 -		StartListening( *rListener.aBCs[n] );
 +    StartListeningToBC f(*this);
-+    for_each(rListener.maBCs.begin(), rListener.maBCs.end(), f);
++    for_each(rListener.mpImpl->maBCs.begin(), rListener.mpImpl->maBCs.end(), f);
  }
 +
  //--------------------------------------------------------------------
  
  // unregisteres the SfxListener from its SfxBroadcasters
-@@ -76,11 +116,8 @@ SfxListener::~SfxListener()
+@@ -76,11 +145,8 @@ SfxListener::~SfxListener()
  	DBG_DTOR(SfxListener, 0);
  
  	// unregister at all remainding broadcasters
@@ -471,49 +562,49 @@
 -		pBC->RemoveListener(*this);
 -	}
 +    RemoveListenerFromBC f(*this);
-+    for_each(maBCs.begin(), maBCs.end(), f);
++    for_each(mpImpl->maBCs.begin(), mpImpl->maBCs.end(), f);
  }
  
  //--------------------------------------------------------------------
-@@ -91,8 +128,10 @@ void SfxListener::RemoveBroadcaster_Impl( SfxBroadcaster& rBC )
+@@ -91,8 +157,10 @@ void SfxListener::RemoveBroadcaster_Impl( SfxBroadcaster& rBC )
  {
  	DBG_CHKTHIS(SfxListener, 0);
  
 -	const SfxBroadcaster *pBC = &rBC;
 -	aBCs.Remove( aBCs.GetPos(pBC), 1 );
 +	SfxBroadcaster *pBC = &rBC;
-+    BroadcasterArray::iterator itr = ::std::find(maBCs.begin(), maBCs.end(), pBC);
-+    if (itr != maBCs.end())
-+        maBCs.erase(itr);
++    BroadcasterArray::iterator itr = ::std::find(mpImpl->maBCs.begin(), mpImpl->maBCs.end(), pBC);
++    if (itr != mpImpl->maBCs.end())
++        mpImpl->maBCs.erase(itr);
  }
  
  //--------------------------------------------------------------------
-@@ -107,8 +146,9 @@ BOOL SfxListener::StartListening( SfxBroadcaster& rBroadcaster, BOOL bPreventDup
+@@ -107,8 +175,9 @@ BOOL SfxListener::StartListening( SfxBroadcaster& rBroadcaster, BOOL bPreventDup
  	{
  		if ( rBroadcaster.AddListener(*this) )
  		{
 -			const SfxBroadcaster *pBC = &rBroadcaster;
 -			aBCs.Insert( pBC, aBCs.Count() );
 +			SfxBroadcaster *pBC = &rBroadcaster;
-+            maBCs.insert(pBC);
++            mpImpl->maBCs.insert(pBC);
 +//          maBCs.push_back(pBC);
  
  			DBG_ASSERT( IsListening(rBroadcaster), "StartListening failed" );
  			return TRUE;
-@@ -132,8 +172,10 @@ BOOL SfxListener::EndListening( SfxBroadcaster& rBroadcaster, BOOL bAllDups )
+@@ -132,8 +201,10 @@ BOOL SfxListener::EndListening( SfxBroadcaster& rBroadcaster, BOOL bAllDups )
  	do
  	{
  		rBroadcaster.RemoveListener(*this);
 -		const SfxBroadcaster *pBC = &rBroadcaster;
 -		aBCs.Remove( aBCs.GetPos(pBC), 1 );
 +		SfxBroadcaster *pBC = &rBroadcaster;
-+        BroadcasterArray::iterator itr = ::std::find(maBCs.begin(), maBCs.end(), pBC);
-+        if (itr != maBCs.end())
-+            maBCs.erase(itr);
++        BroadcasterArray::iterator itr = ::std::find(mpImpl->maBCs.begin(), mpImpl->maBCs.end(), pBC);
++        if (itr != mpImpl->maBCs.end())
++            mpImpl->maBCs.erase(itr);
  	}
  	while ( bAllDups && IsListening( rBroadcaster ) );
  	return TRUE;
-@@ -143,13 +185,18 @@ BOOL SfxListener::EndListening( SfxBroadcaster& rBroadcaster, BOOL bAllDups )
+@@ -143,13 +214,18 @@ BOOL SfxListener::EndListening( SfxBroadcaster& rBroadcaster, BOOL bAllDups )
  
  // unregisteres at a specific SfxBroadcaster by index
  
@@ -525,18 +616,18 @@
 -	SfxBroadcaster *pBC = aBCs.GetObject(nNo);
 -	pBC->RemoveListener(*this);
 -	aBCs.Remove( nNo, 1 );
-+    if (nNo >= maBCs.size())
++    if (nNo >= mpImpl->maBCs.size())
 +        return;
 +
-+    BroadcasterArray::iterator itr = maBCs.begin();
++    BroadcasterArray::iterator itr = mpImpl->maBCs.begin();
 +    advance(itr, nNo);
 +    SfxBroadcaster* pBC = *itr;
 +    pBC->RemoveListener(*this);
-+    maBCs.erase(itr);
++    mpImpl->maBCs.erase(itr);
  }
  
  //--------------------------------------------------------------------
-@@ -160,21 +207,33 @@ void SfxListener::EndListeningAll()
+@@ -160,21 +236,33 @@ void SfxListener::EndListeningAll()
  {
  	DBG_CHKTHIS(SfxListener, 0);
  
@@ -548,8 +639,8 @@
 -		aBCs.Remove( 0, 1 );
 -	}
 +    RemoveListenerFromBC f(*this);
-+    for_each(maBCs.begin(), maBCs.end(), f);
-+    maBCs.clear();
++    for_each(mpImpl->maBCs.begin(), mpImpl->maBCs.end(), f);
++    mpImpl->maBCs.clear();
  }
  
  //--------------------------------------------------------------------
@@ -559,27 +650,27 @@
 -	const SfxBroadcaster *pBC = &rBroadcaster;
 -	return USHRT_MAX != aBCs.GetPos( pBC );
 +	SfxBroadcaster *pBC = &rBroadcaster;
-+    BroadcasterArray::const_iterator itr = find(maBCs.begin(), maBCs.end(), pBC);
-+    return itr != maBCs.end();
++    BroadcasterArray::const_iterator itr = find(mpImpl->maBCs.begin(), mpImpl->maBCs.end(), pBC);
++    return itr != mpImpl->maBCs.end();
 +}
 +
 +size_t SfxListener::GetBroadcasterCount() const
 +{
-+    return maBCs.size();
++    return mpImpl->maBCs.size();
 +}
 +
 +SfxBroadcaster* SfxListener::GetBroadcasterJOE( size_t nNo ) const
 +{
-+    if (nNo >= maBCs.size())
++    if (nNo >= mpImpl->maBCs.size())
 +        return NULL;
 +
-+    BroadcasterArray::const_iterator itr = maBCs.begin();
++    BroadcasterArray::const_iterator itr = mpImpl->maBCs.begin();
 +    advance(itr, nNo);
 +    return *itr;
  }
  
  //--------------------------------------------------------------------
-@@ -182,17 +241,16 @@ BOOL SfxListener::IsListening( SfxBroadcaster& rBroadcaster ) const
+@@ -182,17 +270,16 @@ BOOL SfxListener::IsListening( SfxBroadcaster& rBroadcaster ) const
  // base implementation of notification handler
  
  #ifdef DBG_UTIL
@@ -597,8 +688,8 @@
 -	DBG_ASSERT( USHRT_MAX != aBCs.GetPos(pBC),
 +#ifdef DBG_UTIL
 +	SfxBroadcaster *pBC = &rBC;
-+    BroadcasterArray::const_iterator itr = find(maBCs.begin(), maBCs.end(), pBC);
-+	DBG_ASSERT( itr != maBCs.end(),
++    BroadcasterArray::const_iterator itr = find(mpImpl->maBCs.begin(), mpImpl->maBCs.end(), pBC);
++	DBG_ASSERT( itr != mpImpl->maBCs.end(),
  				"notification from unregistered broadcaster" );
 -    #endif
 +#endif



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]