Kaydet (Commit) e4d3fa9c authored tarafından Vladimir Glazounov's avatar Vladimir Glazounov

INTEGRATION: CWS abi3 (1.29.20); FILE MERGED

2003/07/10 11:53:42 abi 1.29.20.1: #110668# dispose now deletes container
üst 793b7fee
...@@ -2,9 +2,9 @@ ...@@ -2,9 +2,9 @@
* *
* $RCSfile: bc.cxx,v $ * $RCSfile: bc.cxx,v $
* *
* $Revision: 1.29 $ * $Revision: 1.30 $
* *
* last change: $Author: abi $ $Date: 2003-05-08 09:51:01 $ * last change: $Author: vg $ $Date: 2003-07-25 11:37:55 $
* *
* The Contents of this file are made available subject to the terms of * The Contents of this file are made available subject to the terms of
* either of the following licenses * either of the following licenses
...@@ -208,14 +208,10 @@ BaseContent::~BaseContent( ) ...@@ -208,14 +208,10 @@ BaseContent::~BaseContent( )
} }
m_pMyShell->m_pProvider->release(); m_pMyShell->m_pProvider->release();
if( m_pDisposeEventListeners ) delete m_pDisposeEventListeners;
delete m_pDisposeEventListeners; delete m_pContentEventListeners;
if( m_pContentEventListeners ) delete m_pPropertyListener;
delete m_pContentEventListeners; delete m_pPropertySetInfoChangeListeners;
if( m_pPropertyListener )
delete m_pPropertyListener;
if( m_pPropertySetInfoChangeListeners )
delete m_pPropertySetInfoChangeListeners;
} }
...@@ -293,22 +289,47 @@ void SAL_CALL ...@@ -293,22 +289,47 @@ void SAL_CALL
BaseContent::dispose() BaseContent::dispose()
throw( RuntimeException ) throw( RuntimeException )
{ {
vos::OGuard aGuard( m_aMutex );
lang::EventObject aEvt; lang::EventObject aEvt;
aEvt.Source = static_cast< XContent* >( this ); cppu::OInterfaceContainerHelper* pDisposeEventListeners;
cppu::OInterfaceContainerHelper* pContentEventListeners;
cppu::OInterfaceContainerHelper* pPropertySetInfoChangeListeners;
PropertyListeners* pPropertyListener;
{
vos::OGuard aGuard( m_aMutex );
aEvt.Source = static_cast< XContent* >( this );
if ( m_pDisposeEventListeners && m_pDisposeEventListeners->getLength() )
m_pDisposeEventListeners->disposeAndClear( aEvt );
if ( m_pContentEventListeners && m_pContentEventListeners->getLength() ) pDisposeEventListeners =
m_pContentEventListeners->disposeAndClear( aEvt ); m_pDisposeEventListeners, m_pDisposeEventListeners = 0;
if( m_pPropertyListener ) pContentEventListeners =
m_pPropertyListener->disposeAndClear( aEvt ); m_pContentEventListeners, m_pContentEventListeners = 0;
if( m_pPropertySetInfoChangeListeners ) pPropertySetInfoChangeListeners =
m_pPropertySetInfoChangeListeners->disposeAndClear( aEvt ); m_pPropertySetInfoChangeListeners,
m_pPropertySetInfoChangeListeners = 0;
pPropertyListener =
m_pPropertyListener, m_pPropertyListener = 0;
}
if ( pDisposeEventListeners && pDisposeEventListeners->getLength() )
pDisposeEventListeners->disposeAndClear( aEvt );
if ( pContentEventListeners && pContentEventListeners->getLength() )
pContentEventListeners->disposeAndClear( aEvt );
if( pPropertyListener )
pPropertyListener->disposeAndClear( aEvt );
if( pPropertySetInfoChangeListeners )
pPropertySetInfoChangeListeners->disposeAndClear( aEvt );
delete pDisposeEventListeners;
delete pContentEventListeners;
delete pPropertyListener;
delete pPropertySetInfoChangeListeners;
} }
...@@ -531,11 +552,14 @@ BaseContent::removePropertiesChangeListener( const Sequence< rtl::OUString >& Pr ...@@ -531,11 +552,14 @@ BaseContent::removePropertiesChangeListener( const Sequence< rtl::OUString >& Pr
const Reference< beans::XPropertiesChangeListener >& Listener ) const Reference< beans::XPropertiesChangeListener >& Listener )
throw( RuntimeException ) throw( RuntimeException )
{ {
if( ! Listener.is() || ! m_pPropertyListener ) if( ! Listener.is() )
return; return;
vos::OGuard aGuard( m_aMutex ); vos::OGuard aGuard( m_aMutex );
if( ! m_pPropertyListener )
return;
for( sal_Int32 i = 0; i < PropertyNames.getLength(); ++i ) for( sal_Int32 i = 0; i < PropertyNames.getLength(); ++i )
m_pPropertyListener->removeInterface( PropertyNames[i],Listener ); m_pPropertyListener->removeInterface( PropertyNames[i],Listener );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment