summaryrefslogtreecommitdiffstats
path: root/chart2
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2017-01-23 14:15:34 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2017-01-24 07:03:11 +0200
commitbd281dc6e1f3cd5e4785baeeb908a3eca25a7481 (patch)
tree3075cc31b9510b1c5d4ae4f393b4ae5f1859838a /chart2
parentuse rtl::Reference in ControllerCommandDispatch (diff)
downloadcore-bd281dc6e1f3cd5e4785baeeb908a3eca25a7481.tar.gz
core-bd281dc6e1f3cd5e4785baeeb908a3eca25a7481.zip
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.cxx32
-rw-r--r--chart2/source/controller/inc/AccessibleBase.hxx13
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;