diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2017-01-23 14:15:34 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2017-01-24 07:03:11 +0200 |
commit | bd281dc6e1f3cd5e4785baeeb908a3eca25a7481 (patch) | |
tree | 3075cc31b9510b1c5d4ae4f393b4ae5f1859838a /chart2 | |
parent | 33319078e965d4597db9c7ce72ab910f3e0d4e7d (diff) |
use rtl::Reference in AccessibleBase
instead of storing both a raw pointer and an uno::Reference
Change-Id: I583de7a25893baa65363aa6d3199564f63f4fa60
Diffstat (limited to 'chart2')
-rw-r--r-- | chart2/source/controller/accessibility/AccessibleBase.cxx | 32 | ||||
-rw-r--r-- | chart2/source/controller/inc/AccessibleBase.hxx | 13 |
2 files changed, 15 insertions, 30 deletions
diff --git a/chart2/source/controller/accessibility/AccessibleBase.cxx b/chart2/source/controller/accessibility/AccessibleBase.cxx index 9d40cc5e60f6..64fef563a974 100644 --- a/chart2/source/controller/accessibility/AccessibleBase.cxx +++ b/chart2/source/controller/accessibility/AccessibleBase.cxx @@ -80,19 +80,18 @@ AccessibleBase::AccessibleBase( m_bMayHaveChildren( bMayHaveChildren ), m_bChildrenInitialized( false ), m_nEventNotifierId(0), - m_pStateSetHelper( new ::utl::AccessibleStateSetHelper() ), - m_aStateSet( m_pStateSetHelper ), + m_xStateSetHelper( new ::utl::AccessibleStateSetHelper() ), m_aAccInfo( rAccInfo ), m_bAlwaysTransparent( bAlwaysTransparent ), m_bStateSetInitialized( false ) { // initialize some states - OSL_ASSERT( m_pStateSetHelper ); - m_pStateSetHelper->AddState( AccessibleStateType::ENABLED ); - m_pStateSetHelper->AddState( AccessibleStateType::SHOWING ); - m_pStateSetHelper->AddState( AccessibleStateType::VISIBLE ); - m_pStateSetHelper->AddState( AccessibleStateType::SELECTABLE ); - m_pStateSetHelper->AddState( AccessibleStateType::FOCUSABLE ); + OSL_ASSERT( m_xStateSetHelper.is() ); + m_xStateSetHelper->AddState( AccessibleStateType::ENABLED ); + m_xStateSetHelper->AddState( AccessibleStateType::SHOWING ); + m_xStateSetHelper->AddState( AccessibleStateType::VISIBLE ); + m_xStateSetHelper->AddState( AccessibleStateType::SELECTABLE ); + m_xStateSetHelper->AddState( AccessibleStateType::FOCUSABLE ); } AccessibleBase::~AccessibleBase() @@ -192,16 +191,16 @@ void AccessibleBase::AddState( sal_Int16 aState ) throw (RuntimeException) { CheckDisposeState(); - OSL_ASSERT( m_pStateSetHelper ); - m_pStateSetHelper->AddState( aState ); + OSL_ASSERT( m_xStateSetHelper.is() ); + m_xStateSetHelper->AddState( aState ); } void AccessibleBase::RemoveState( sal_Int16 aState ) throw (RuntimeException) { CheckDisposeState(); - OSL_ASSERT( m_pStateSetHelper ); - m_pStateSetHelper->RemoveState( aState ); + OSL_ASSERT( m_xStateSetHelper.is() ); + m_xStateSetHelper->RemoveState( aState ); } bool AccessibleBase::UpdateChildren() @@ -453,16 +452,11 @@ void SAL_CALL AccessibleBase::disposing() // reset pointers m_aAccInfo.m_pParent = nullptr; - // invalidate implementation for helper, but keep UNO reference to still - // allow a tool to query the DEFUNC state. - // Note: The object will be deleted when the last reference is released - m_pStateSetHelper = nullptr; - // attach new empty state set helper to member reference ::utl::AccessibleStateSetHelper * pHelper = new ::utl::AccessibleStateSetHelper(); pHelper->AddState( AccessibleStateType::DEFUNC ); // release old helper and attach new one - m_aStateSet.set( pHelper ); + m_xStateSetHelper = pHelper; m_bIsDisposed = true; @@ -607,7 +601,7 @@ Reference< XAccessibleStateSet > SAL_CALL AccessibleBase::getAccessibleStateSet( m_bStateSetInitialized = true; } - return m_aStateSet; + return m_xStateSetHelper.get(); } lang::Locale SAL_CALL AccessibleBase::getLocale() diff --git a/chart2/source/controller/inc/AccessibleBase.hxx b/chart2/source/controller/inc/AccessibleBase.hxx index d822c39111bc..07416aef68b4 100644 --- a/chart2/source/controller/inc/AccessibleBase.hxx +++ b/chart2/source/controller/inc/AccessibleBase.hxx @@ -35,6 +35,7 @@ #include <cppuhelper/compbase.hxx> #include <cppuhelper/interfacecontainer.hxx> #include <unotools/accessiblestatesethelper.hxx> +#include <rtl/ref.hxx> #include <map> #include <memory> @@ -339,17 +340,7 @@ private: Note: This member must come before m_aStateSet! */ - ::utl::AccessibleStateSetHelper * m_pStateSetHelper; - /** this is returned in getAccessibleStateSet(). - - The implementation is an ::utl::AccessibleStateSetHelper. To access - implementation methods use m_pStateSetHelper. - - Note: Keeping this reference ensures, that the helper object is only - destroyed after this object has been disposed(). - */ - css::uno::Reference< css::accessibility::XAccessibleStateSet > - m_aStateSet; + rtl::Reference<::utl::AccessibleStateSetHelper> m_xStateSetHelper; AccessibleElementInfo m_aAccInfo; const bool m_bAlwaysTransparent; |