From a5e281ff0468416e5bb20b16ccac16550a83a9fd Mon Sep 17 00:00:00 2001 From: Michael Stahl Date: Fri, 22 Nov 2013 00:38:45 +0100 Subject: winaccessibility: make XAccessibleAction member Reference Maybe it would be kept alive by AccObject::m_AccActionRef but why not play it safe. Change-Id: I03c2be04e97dcde8a177ef8dfd0d75595ab13a53 --- winaccessibility/source/UAccCOM/MAccessible.cxx | 13 ++++++------- winaccessibility/source/UAccCOM/MAccessible.h | 4 +++- 2 files changed, 9 insertions(+), 8 deletions(-) (limited to 'winaccessibility') diff --git a/winaccessibility/source/UAccCOM/MAccessible.cxx b/winaccessibility/source/UAccCOM/MAccessible.cxx index c65c5af3d3d8..642e77896c4b 100644 --- a/winaccessibility/source/UAccCOM/MAccessible.cxx +++ b/winaccessibility/source/UAccCOM/MAccessible.cxx @@ -207,7 +207,6 @@ m_pszValue(NULL), m_pszDescription(NULL), m_isDestroy(FALSE), m_pszActionDescription(NULL), -m_pXAction(NULL), m_bRequiresSave(FALSE) { m_sLocation.m_dLeft=0; @@ -2409,7 +2408,7 @@ STDMETHODIMP CMAccessible::GetUNOInterface(hyper * pXAcc) */ STDMETHODIMP CMAccessible::SetDefaultAction(hyper pAction) { - m_pXAction = reinterpret_cast(pAction); + m_xAction = reinterpret_cast(pAction); return S_OK; } @@ -2434,7 +2433,7 @@ HRESULT STDMETHODCALLTYPE CMAccessible::get_accDefaultAction(VARIANT varChild, B { if(varChild.lVal==CHILDID_SELF) { - if( m_pXAction == NULL ) + if (!m_xAction.is()) return DISP_E_MEMBERNOTFOUND; SAFE_SYSFREESTRING(*pszDefaultAction); *pszDefaultAction = SysAllocString(m_pszActionDescription); @@ -2465,15 +2464,15 @@ HRESULT STDMETHODCALLTYPE CMAccessible::accDoDefaultAction(VARIANT varChild) ISDESTROY() if( varChild.vt != VT_I4 ) return E_INVALIDARG; - if( m_pXAction == NULL ) + if (!m_xAction.is()) return E_FAIL; - if( m_pXAction->getAccessibleActionCount() == 0 ) + if (m_xAction->getAccessibleActionCount() == 0) return E_FAIL; if(varChild.lVal==CHILDID_SELF) { - if(m_pXAction->getAccessibleActionCount() > 0) - m_pXAction->doAccessibleAction(0); + if (m_xAction->getAccessibleActionCount() > 0) + m_xAction->doAccessibleAction(0); return S_OK; } diff --git a/winaccessibility/source/UAccCOM/MAccessible.h b/winaccessibility/source/UAccCOM/MAccessible.h index 315ae3cb41c9..69c6e468c2f8 100644 --- a/winaccessibility/source/UAccCOM/MAccessible.h +++ b/winaccessibility/source/UAccCOM/MAccessible.h @@ -229,7 +229,9 @@ private: BOOL m_isDestroy; css::uno::Reference m_xAccessible; - css::accessibility::XAccessibleAction * m_pXAction; + // initially m_xAction and m_xContext are the same object + // but they may be different once AccObject::UpdateAction() is called? + css::uno::Reference m_xAction; css::uno::Reference m_xContext; private: -- cgit