User: rt Date: 2008-06-06 13:59:59+0000 Modified: dba/dbaccess/source/core/dataaccess/ComponentDefinition.cxx
Log: INTEGRATION: CWS dba30c (1.15.8); FILE MERGED 2008/05/05 06:16:45 oj 1.15.8.1: #156608# clear listener after disposing columns File Changes: Directory: /dba/dbaccess/source/core/dataaccess/ ================================================ File [changed]: ComponentDefinition.cxx Url: http://dba.openoffice.org/source/browse/dba/dbaccess/source/core/dataaccess/ComponentDefinition.cxx?r1=1.15&r2=1.16 Delta lines: +7 -4 ------------------- --- ComponentDefinition.cxx 2008-04-10 12:36:46+0000 1.15 +++ ComponentDefinition.cxx 2008-06-06 13:59:56+0000 1.16 @@ -97,12 +97,14 @@ // XPropertyChangeListener virtual void SAL_CALL propertyChange( const PropertyChangeEvent& /*_rEvent*/ ) throw (RuntimeException) { + if ( m_pComponent ) m_pComponent->notifyDataSourceModified(); } // XEventListener virtual void SAL_CALL disposing( const EventObject& /*_rSource*/ ) throw (RuntimeException) { } + void clear() { m_pComponent = NULL; } }; DBG_NAME(OComponentDefinition_Impl) OComponentDefinition_Impl::OComponentDefinition_Impl() @@ -122,7 +124,7 @@ //-------------------------------------------------------------------------- void OComponentDefinition::registerProperties() { - m_xColumnPropertyListener = new OColumnPropertyListener(this); + m_xColumnPropertyListener = ::comphelper::ImplementationReference<OColumnPropertyListener,XPropertyChangeListener>(new OColumnPropertyListener(this)); OComponentDefinition_Impl& rDefinition( getDefinition() ); ODataSettings::registerPropertiesFor( &rDefinition ); @@ -215,9 +217,10 @@ void SAL_CALL OComponentDefinition::disposing() { OContentHelper::disposing(); - m_xColumnPropertyListener.clear(); if ( m_pColumns.get() ) m_pColumns->disposing(); + m_xColumnPropertyListener->clear(); + m_xColumnPropertyListener.dispose(); } // ----------------------------------------------------------------------------- IPropertyArrayHelper& OComponentDefinition::getInfoHelper() @@ -267,7 +270,7 @@ OComponentDefinition_Impl::const_iterator aFind = rDefinition.find( _rName ); if ( aFind != rDefinition.end() ) { - aFind->second->addPropertyChangeListener(::rtl::OUString(),m_xColumnPropertyListener); + aFind->second->addPropertyChangeListener(::rtl::OUString(),m_xColumnPropertyListener.getRef()); return new OTableColumnWrapper( aFind->second, aFind->second, sal_True ); } return new OTableColumn( _rName ); --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
