User: rt      
Date: 05/10/24 01:29:29

Modified:
 /dba/dbaccess/source/core/dataaccess/
  intercept.cxx

Log:
 INTEGRATION: CWS dba201d (1.5.2); FILE MERGED
 2005/10/07 06:24:04 fs 1.5.2.2: remove the unused implementation of XComponent 
/ supersede DisconnectContentHolder by calling dispose -> no leaking instances 
anymore
 2005/10/06 14:09:26 fs 1.5.2.1: #i52649# when dispatching a close request, 
keep our m_pContentHolder alive. Else, the EmbeddedObject implementations 
strangely crash

File Changes:

Directory: /dba/dbaccess/source/core/dataaccess/
================================================

File [changed]: intercept.cxx
Url: 
http://dba.openoffice.org/source/browse/dba/dbaccess/source/core/dataaccess/intercept.cxx?r1=1.5&r2=1.6
Delta lines:  +9 -40
--------------------
--- intercept.cxx       23 Sep 2005 12:06:53 -0000      1.5
+++ intercept.cxx       24 Oct 2005 08:29:26 -0000      1.6
@@ -80,55 +80,23 @@
 #define DISPATCH_RELOAD                5
 // the OSL_ENSURE in CTOR has to be changed too, when adding new defines
 
-void OInterceptor::DisconnectContentHolder()
-{
-       osl::MutexGuard aGuard( m_aMutex );
-       m_pContentHolder = NULL;
-}
-
-void SAL_CALL
-OInterceptor::addEventListener(
-       const Reference< com::sun::star::lang::XEventListener >& Listener )
-       throw( RuntimeException )
-{
-       osl::MutexGuard aGuard( m_aMutex );
-
-       if ( ! m_pDisposeEventListeners )
-               m_pDisposeEventListeners =
-                       new cppu::OInterfaceContainerHelper( m_aMutex );
-
-       m_pDisposeEventListeners->addInterface( Listener );
-}
-
-
-void SAL_CALL
-OInterceptor::removeEventListener(
-       const Reference< com::sun::star::lang::XEventListener >& Listener )
-       throw( RuntimeException )
-{
-       osl::MutexGuard aGuard( m_aMutex );
-
-       if ( m_pDisposeEventListeners )
-               m_pDisposeEventListeners->removeInterface( Listener );
-}
-
-
 void SAL_CALL OInterceptor::dispose()
        throw( RuntimeException )
 {
-       EventObject aEvt;
-       aEvt.Source = static_cast< XDispatch* >( this );
+       EventObject aEvt( *this );
 
        osl::MutexGuard aGuard(m_aMutex);
 
        if ( m_pDisposeEventListeners && m_pDisposeEventListeners->getLength() )
                m_pDisposeEventListeners->disposeAndClear( aEvt );
 
-       if(m_pStatCL)
+       if ( m_pStatCL )
                m_pStatCL->disposeAndClear( aEvt );
 
-       m_xSlaveDispatchProvider = 0;
-       m_xMasterDispatchProvider = 0;
+       m_xSlaveDispatchProvider.clear();
+       m_xMasterDispatchProvider.clear();
+
+    m_pContentHolder = NULL;
 }
 
 
@@ -227,6 +195,7 @@
                     if ( xEvtB.is() )
                         xEvtB->removeEventListener(this);
 
+                    Reference< XInterface > xKeepContentHolderAlive( 
*m_pContentHolder );
                                    xDispatch->dispatch( _URL, Arguments );
                 }
                        }




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to