summaryrefslogtreecommitdiff
path: root/winaccessibility
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2013-11-22 00:38:45 +0100
committerMichael Stahl <mstahl@redhat.com>2013-11-25 12:25:50 +0100
commit0a3bd6a8340a7c5adcae62b7c6863a03875ebf5d (patch)
tree09fe4288813ab4b761653e34af91865c77ceac13 /winaccessibility
parent050f835bb390e82eaee4520e8e6c4e255d2c5038 (diff)
winaccessibility: make XAccessibleAction member Reference
Maybe it would be kept alive by AccObject::m_AccActionRef but why not play it safe. Change-Id: I03c2be04e97dcde8a177ef8dfd0d75595ab13a53 (cherry picked from commit a5e281ff0468416e5bb20b16ccac16550a83a9fd)
Diffstat (limited to 'winaccessibility')
-rw-r--r--winaccessibility/source/UAccCOM/MAccessible.cxx13
-rw-r--r--winaccessibility/source/UAccCOM/MAccessible.h4
2 files changed, 9 insertions, 8 deletions
diff --git a/winaccessibility/source/UAccCOM/MAccessible.cxx b/winaccessibility/source/UAccCOM/MAccessible.cxx
index 419b60d2d1a0..ba6a5cd1bed3 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<XAccessibleAction*>(pAction);
+ m_xAction = reinterpret_cast<XAccessibleAction*>(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<css::accessibility::XAccessible> 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<css::accessibility::XAccessibleAction> m_xAction;
css::uno::Reference<css::accessibility::XAccessibleContext> m_xContext;
private: