You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by af...@apache.org on 2012/06/20 14:58:33 UTC
svn commit: r1352075 - in /incubator/ooo/trunk/main/framework/source:
accelerators/ inc/accelerators/ uiconfiguration/ uielement/
Author: af
Date: Wed Jun 20 12:58:32 2012
New Revision: 1352075
URL: http://svn.apache.org/viewvc?rev=1352075&view=rev
Log:
#i120029# Unregister on dispose.
Patch by: zhang jianfang
Review by: Andre Fischer
Modified:
incubator/ooo/trunk/main/framework/source/accelerators/acceleratorconfiguration.cxx
incubator/ooo/trunk/main/framework/source/accelerators/globalacceleratorconfiguration.cxx
incubator/ooo/trunk/main/framework/source/accelerators/moduleacceleratorconfiguration.cxx
incubator/ooo/trunk/main/framework/source/inc/accelerators/acceleratorconfiguration.hxx
incubator/ooo/trunk/main/framework/source/inc/accelerators/globalacceleratorconfiguration.hxx
incubator/ooo/trunk/main/framework/source/inc/accelerators/moduleacceleratorconfiguration.hxx
incubator/ooo/trunk/main/framework/source/uiconfiguration/moduleuiconfigurationmanager.cxx
incubator/ooo/trunk/main/framework/source/uielement/menubarmanager.cxx
incubator/ooo/trunk/main/framework/source/uielement/toolbarmanager.cxx
Modified: incubator/ooo/trunk/main/framework/source/accelerators/acceleratorconfiguration.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/framework/source/accelerators/acceleratorconfiguration.cxx?rev=1352075&r1=1352074&r2=1352075&view=diff
==============================================================================
--- incubator/ooo/trunk/main/framework/source/accelerators/acceleratorconfiguration.cxx (original)
+++ incubator/ooo/trunk/main/framework/source/accelerators/acceleratorconfiguration.cxx Wed Jun 20 12:58:32 2012
@@ -676,21 +676,23 @@ AcceleratorCache& XMLBasedAcceleratorCon
//-----------------------------------------------
// XInterface, XTypeProvider
-DEFINE_XINTERFACE_7(XCUBasedAcceleratorConfiguration ,
+DEFINE_XINTERFACE_8(XCUBasedAcceleratorConfiguration ,
OWeakObject ,
DIRECT_INTERFACE(css::lang::XTypeProvider ),
DIRECT_INTERFACE(css::ui::XAcceleratorConfiguration ),
DIRECT_INTERFACE(css::util::XChangesListener ),
DIRECT_INTERFACE(css::form::XReset ),
+ DIRECT_INTERFACE(css::lang::XComponent ),
DIRECT_INTERFACE(css::ui::XUIConfigurationPersistence),
DIRECT_INTERFACE(css::ui::XUIConfigurationStorage ),
DIRECT_INTERFACE(css::ui::XUIConfiguration ))
- DEFINE_XTYPEPROVIDER_7(XCUBasedAcceleratorConfiguration ,
+ DEFINE_XTYPEPROVIDER_8(XCUBasedAcceleratorConfiguration ,
css::lang::XTypeProvider ,
css::ui::XAcceleratorConfiguration ,
css::util::XChangesListener ,
css::form::XReset ,
+ css::lang::XComponent ,
css::ui::XUIConfigurationPersistence,
css::ui::XUIConfigurationStorage ,
css::ui::XUIConfiguration )
@@ -1292,6 +1294,27 @@ void SAL_CALL XCUBasedAcceleratorConfigu
}
//-----------------------------------------------
+void SAL_CALL XCUBasedAcceleratorConfiguration::dispose()
+ throw(css::uno::RuntimeException)
+{
+ // nop
+}
+
+//-----------------------------------------------
+void SAL_CALL XCUBasedAcceleratorConfiguration::addEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& xListener )
+ throw(css::uno::RuntimeException)
+{
+ // nop
+}
+
+//-----------------------------------------------
+void SAL_CALL XCUBasedAcceleratorConfiguration::removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& aListener )
+ throw(css::uno::RuntimeException)
+{
+ // nop
+}
+
+//-----------------------------------------------
void XCUBasedAcceleratorConfiguration::impl_ts_load( sal_Bool bPreferred, const css::uno::Reference< css::container::XNameAccess >& xCfg )
{
AcceleratorCache aReadCache = AcceleratorCache();
Modified: incubator/ooo/trunk/main/framework/source/accelerators/globalacceleratorconfiguration.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/framework/source/accelerators/globalacceleratorconfiguration.cxx?rev=1352075&r1=1352074&r2=1352075&view=diff
==============================================================================
--- incubator/ooo/trunk/main/framework/source/accelerators/globalacceleratorconfiguration.cxx (original)
+++ incubator/ooo/trunk/main/framework/source/accelerators/globalacceleratorconfiguration.cxx Wed Jun 20 12:58:32 2012
@@ -120,4 +120,23 @@ void GlobalAcceleratorConfiguration::imp
{}
}
+//-----------------------------------------------
+//
+// XComponent.dispose(), #120029#, to release the cyclic reference
+//
+void SAL_CALL GlobalAcceleratorConfiguration::dispose()
+ throw(css::uno::RuntimeException)
+{
+ try
+ {
+ css::uno::Reference< css::util::XChangesNotifier > xBroadcaster(m_xCfg, css::uno::UNO_QUERY_THROW);
+ if ( xBroadcaster.is() )
+ xBroadcaster->removeChangesListener(static_cast< css::util::XChangesListener* >(this));
+ }
+ catch(const css::uno::RuntimeException& exRun)
+ { throw exRun; }
+ catch(const css::uno::Exception&)
+ {}
+}
+
} // namespace framework
Modified: incubator/ooo/trunk/main/framework/source/accelerators/moduleacceleratorconfiguration.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/framework/source/accelerators/moduleacceleratorconfiguration.cxx?rev=1352075&r1=1352074&r2=1352075&view=diff
==============================================================================
--- incubator/ooo/trunk/main/framework/source/accelerators/moduleacceleratorconfiguration.cxx (original)
+++ incubator/ooo/trunk/main/framework/source/accelerators/moduleacceleratorconfiguration.cxx Wed Jun 20 12:58:32 2012
@@ -167,5 +167,24 @@ void ModuleAcceleratorConfiguration::imp
{}
}
+//-----------------------------------------------
+//
+// XComponent.dispose(), #120029#, to release the cyclic reference
+//
+void SAL_CALL ModuleAcceleratorConfiguration::dispose()
+ throw(css::uno::RuntimeException)
+{
+ try
+ {
+ css::uno::Reference< css::util::XChangesNotifier > xBroadcaster(m_xCfg, css::uno::UNO_QUERY_THROW);
+ if ( xBroadcaster.is() )
+ xBroadcaster->removeChangesListener(static_cast< css::util::XChangesListener* >(this));
+ }
+ catch(const css::uno::RuntimeException& exRun)
+ { throw exRun; }
+ catch(const css::uno::Exception&)
+ {}
+}
+
} // namespace framework
Modified: incubator/ooo/trunk/main/framework/source/inc/accelerators/acceleratorconfiguration.hxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/framework/source/inc/accelerators/acceleratorconfiguration.hxx?rev=1352075&r1=1352074&r2=1352075&view=diff
==============================================================================
--- incubator/ooo/trunk/main/framework/source/inc/accelerators/acceleratorconfiguration.hxx (original)
+++ incubator/ooo/trunk/main/framework/source/inc/accelerators/acceleratorconfiguration.hxx Wed Jun 20 12:58:32 2012
@@ -309,6 +309,7 @@ class XCUBasedAcceleratorConfiguration :
, public ::cppu::OWeakObject
, public css::lang::XTypeProvider
, public css::util::XChangesListener
+ , public css::lang::XComponent
, public css::form::XReset // TODO use XPresetHandler instead if available
, public css::ui::XAcceleratorConfiguration // => css::ui::XUIConfigurationPersistence
// css::ui::XUIConfigurationStorage
@@ -435,6 +436,11 @@ class XCUBasedAcceleratorConfiguration :
virtual void SAL_CALL disposing(const css::lang::EventObject& aEvent)
throw(css::uno::RuntimeException);
+ // XComponent
+ virtual void SAL_CALL dispose() throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL addEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& aListener ) throw (::com::sun::star::uno::RuntimeException);
+
//______________________________________
// helper for derived classes
Modified: incubator/ooo/trunk/main/framework/source/inc/accelerators/globalacceleratorconfiguration.hxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/framework/source/inc/accelerators/globalacceleratorconfiguration.hxx?rev=1352075&r1=1352074&r2=1352075&view=diff
==============================================================================
--- incubator/ooo/trunk/main/framework/source/inc/accelerators/globalacceleratorconfiguration.hxx (original)
+++ incubator/ooo/trunk/main/framework/source/inc/accelerators/globalacceleratorconfiguration.hxx Wed Jun 20 12:58:32 2012
@@ -88,6 +88,9 @@ class GlobalAcceleratorConfiguration : p
throw (css::uno::Exception ,
css::uno::RuntimeException);
+ // XComponent
+ virtual void SAL_CALL dispose() throw (::com::sun::star::uno::RuntimeException);
+
//______________________________________
// helper
Modified: incubator/ooo/trunk/main/framework/source/inc/accelerators/moduleacceleratorconfiguration.hxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/framework/source/inc/accelerators/moduleacceleratorconfiguration.hxx?rev=1352075&r1=1352074&r2=1352075&view=diff
==============================================================================
--- incubator/ooo/trunk/main/framework/source/inc/accelerators/moduleacceleratorconfiguration.hxx (original)
+++ incubator/ooo/trunk/main/framework/source/inc/accelerators/moduleacceleratorconfiguration.hxx Wed Jun 20 12:58:32 2012
@@ -96,6 +96,9 @@ class ModuleAcceleratorConfiguration : p
throw(css::uno::Exception ,
css::uno::RuntimeException);
+ // XComponent
+ virtual void SAL_CALL dispose() throw (::com::sun::star::uno::RuntimeException);
+
//______________________________________
// helper
Modified: incubator/ooo/trunk/main/framework/source/uiconfiguration/moduleuiconfigurationmanager.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/framework/source/uiconfiguration/moduleuiconfigurationmanager.cxx?rev=1352075&r1=1352074&r2=1352075&view=diff
==============================================================================
--- incubator/ooo/trunk/main/framework/source/uiconfiguration/moduleuiconfigurationmanager.cxx (original)
+++ incubator/ooo/trunk/main/framework/source/uiconfiguration/moduleuiconfigurationmanager.cxx Wed Jun 20 12:58:32 2012
@@ -777,6 +777,9 @@ void SAL_CALL ModuleUIConfigurationManag
ResetableGuard aGuard( m_aLock );
Reference< XComponent > xModuleImageManager( m_xModuleImageManager );
m_xModuleImageManager.clear();
+ Reference< XComponent > xCompMAM( m_xModuleAcceleratorManager, UNO_QUERY );
+ if ( xCompMAM.is() )
+ xCompMAM->dispose();
m_xModuleAcceleratorManager.clear();
m_aUIElements[LAYER_USERDEFINED].clear();
m_aUIElements[LAYER_DEFAULT].clear();
Modified: incubator/ooo/trunk/main/framework/source/uielement/menubarmanager.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/framework/source/uielement/menubarmanager.cxx?rev=1352075&r1=1352074&r2=1352075&view=diff
==============================================================================
--- incubator/ooo/trunk/main/framework/source/uielement/menubarmanager.cxx (original)
+++ incubator/ooo/trunk/main/framework/source/uielement/menubarmanager.cxx Wed Jun 20 12:58:32 2012
@@ -422,6 +422,9 @@ void SAL_CALL MenuBarManager::dispose()
}
m_xDocImageManager.clear();
m_xModuleImageManager.clear();
+ Reference< XComponent > xCompGAM( m_xGlobalAcceleratorManager, UNO_QUERY );
+ if ( xCompGAM.is() )
+ xCompGAM->dispose();
m_xGlobalAcceleratorManager.clear();
m_xModuleAcceleratorManager.clear();
m_xDocAcceleratorManager.clear();
Modified: incubator/ooo/trunk/main/framework/source/uielement/toolbarmanager.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/framework/source/uielement/toolbarmanager.cxx?rev=1352075&r1=1352074&r2=1352075&view=diff
==============================================================================
--- incubator/ooo/trunk/main/framework/source/uielement/toolbarmanager.cxx (original)
+++ incubator/ooo/trunk/main/framework/source/uielement/toolbarmanager.cxx Wed Jun 20 12:58:32 2012
@@ -706,6 +706,9 @@ void SAL_CALL ToolBarManager::dispose()
m_xFrame.clear();
m_xServiceManager.clear();
+ Reference< XComponent > xCompGAM( m_xGlobalAcceleratorManager, UNO_QUERY );
+ if ( xCompGAM.is() )
+ xCompGAM->dispose();
m_xGlobalAcceleratorManager.clear();
m_xModuleAcceleratorManager.clear();
m_xDocAcceleratorManager.clear();