author | Jacek Caban <jacek@codeweavers.com> |
Wed, 28 Nov 2012 11:27:20 +0100 | |
changeset 114354 | ddabcd6f9491b03ff933161472bc7f2dfb68cdc7 |
parent 114353 | febc983734f78e05d0fe287cbe22ed7396f2e0cc |
child 114355 | 476e02f9a6197196212fa2c5add97fca463e4480 |
push id | 23913 |
push user | emorley@mozilla.com |
push date | Wed, 28 Nov 2012 17:11:31 +0000 |
treeherder | mozilla-central@17c267a881cf [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | trev.saunders |
bugs | 815581 |
milestone | 20.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/accessible/src/msaa/AccessibleWrap.cpp +++ b/accessible/src/msaa/AccessibleWrap.cpp @@ -74,17 +74,18 @@ NS_IMPL_ISUPPORTS_INHERITED0(AccessibleW //----------------------------------------------------- // IUnknown interface methods - see iunknown.h for documentation //----------------------------------------------------- // Microsoft COM QueryInterface STDMETHODIMP AccessibleWrap::QueryInterface(REFIID iid, void** ppv) { -__try { + A11Y_TRYBLOCK_BEGIN + *ppv = NULL; if (IID_IUnknown == iid || IID_IDispatch == iid || IID_IAccessible == iid) *ppv = static_cast<IAccessible*>(this); else if (IID_IEnumVARIANT == iid) { // Don't support this interface for leaf elements. if (!HasChildren() || nsAccUtils::MustPrune(this)) return E_NOINTERFACE; @@ -118,19 +119,19 @@ AccessibleWrap::QueryInterface(REFIID ii if (SUCCEEDED(hr)) return hr; } if (NULL == *ppv) return E_NOINTERFACE; (reinterpret_cast<IUnknown*>(*ppv))->AddRef(); -} __except(FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } + return S_OK; - return S_OK; + A11Y_TRYBLOCK_END } //////////////////////////////////////////////////////////////////////////////// // IServiceProvider STDMETHODIMP AccessibleWrap::QueryService(REFGUID aGuidService, REFIID aIID, void** aInstancePtr) @@ -156,17 +157,18 @@ AccessibleWrap::QueryService(REFGUID aGu //----------------------------------------------------- // IAccessible methods //----------------------------------------------------- STDMETHODIMP AccessibleWrap::get_accParent( IDispatch __RPC_FAR *__RPC_FAR *ppdispParent) { -__try { + A11Y_TRYBLOCK_BEGIN + *ppdispParent = NULL; if (IsDefunct()) return CO_E_OBJNOTCONNECTED; DocAccessible* doc = AsDoc(); if (doc) { // Return window system accessible object for root document and tab document @@ -188,48 +190,50 @@ AccessibleWrap::get_accParent( IDispatch if (IsApplication()) return S_OK; NS_ERROR("No parent accessible. Should we really assert here?"); return E_UNEXPECTED; } *ppdispParent = NativeAccessible(xpParentAcc); + return S_OK; -} __except(FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return S_OK; + A11Y_TRYBLOCK_END } STDMETHODIMP AccessibleWrap::get_accChildCount( long __RPC_FAR *pcountChildren) { -__try { + A11Y_TRYBLOCK_BEGIN + if (!pcountChildren) return E_INVALIDARG; *pcountChildren = 0; if (IsDefunct()) return CO_E_OBJNOTCONNECTED; if (nsAccUtils::MustPrune(this)) return S_OK; *pcountChildren = ChildCount(); -} __except(FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } + return S_OK; - return S_OK; + A11Y_TRYBLOCK_END } STDMETHODIMP AccessibleWrap::get_accChild( /* [in] */ VARIANT varChild, /* [retval][out] */ IDispatch __RPC_FAR *__RPC_FAR *ppdispChild) { -__try { + A11Y_TRYBLOCK_BEGIN + *ppdispChild = NULL; if (IsDefunct()) return CO_E_OBJNOTCONNECTED; // IAccessible::accChild is used to return this accessible or child accessible // at the given index or to get an accessible by child ID in the case of // document accessible (it's handled by overriden GetXPAccessibleFor method // on the document accessible). The getting an accessible by child ID is used @@ -237,28 +241,28 @@ AccessibleWrap::get_accChild( Accessible* child = GetXPAccessibleFor(varChild); if (!child) return E_INVALIDARG; if (child->IsDefunct()) return CO_E_OBJNOTCONNECTED; *ppdispChild = NativeAccessible(child); + return S_OK; -} __except(FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - - return S_OK; + A11Y_TRYBLOCK_END } STDMETHODIMP AccessibleWrap::get_accName( /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR __RPC_FAR *pszName) { -__try { + A11Y_TRYBLOCK_BEGIN + *pszName = NULL; if (IsDefunct()) return CO_E_OBJNOTCONNECTED; Accessible* xpAccessible = GetXPAccessibleFor(varChild); if (!xpAccessible) return E_INVALIDARG; @@ -273,29 +277,29 @@ AccessibleWrap::get_accName( // reader may choose to invent its own accessible name, e.g. from an image src // attribute. Refer to eNoNameOnPurpose return value. if (name.IsVoid()) return S_FALSE; *pszName = ::SysAllocStringLen(name.get(), name.Length()); if (!*pszName) return E_OUTOFMEMORY; + return S_OK; -} __except(FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - - return S_OK; + A11Y_TRYBLOCK_END } STDMETHODIMP AccessibleWrap::get_accValue( /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR __RPC_FAR *pszValue) { -__try { + A11Y_TRYBLOCK_BEGIN + *pszValue = NULL; if (IsDefunct()) return CO_E_OBJNOTCONNECTED; Accessible* xpAccessible = GetXPAccessibleFor(varChild); if (!xpAccessible) return E_INVALIDARG; @@ -313,26 +317,27 @@ AccessibleWrap::get_accValue( // reverting part of fix for bug 425693 to make this MSAA method behave // IAccessible2-style. if (value.IsEmpty()) return S_FALSE; *pszValue = ::SysAllocStringLen(value.get(), value.Length()); if (!*pszValue) return E_OUTOFMEMORY; + return S_OK; -} __except(FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return S_OK; + A11Y_TRYBLOCK_END } STDMETHODIMP AccessibleWrap::get_accDescription(VARIANT varChild, BSTR __RPC_FAR *pszDescription) { -__try { + A11Y_TRYBLOCK_BEGIN + *pszDescription = NULL; if (IsDefunct()) return CO_E_OBJNOTCONNECTED; Accessible* xpAccessible = GetXPAccessibleFor(varChild); if (!xpAccessible) return E_INVALIDARG; @@ -342,26 +347,26 @@ AccessibleWrap::get_accDescription(VARIA nsAutoString description; xpAccessible->Description(description); *pszDescription = ::SysAllocStringLen(description.get(), description.Length()); return *pszDescription ? S_OK : E_OUTOFMEMORY; -} __except(FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP AccessibleWrap::get_accRole( /* [optional][in] */ VARIANT varChild, /* [retval][out] */ VARIANT __RPC_FAR *pvarRole) { -__try { + A11Y_TRYBLOCK_BEGIN + VariantInit(pvarRole); if (IsDefunct()) return CO_E_OBJNOTCONNECTED; Accessible* xpAccessible = GetXPAccessibleFor(varChild); if (!xpAccessible) return E_INVALIDARG; @@ -434,26 +439,29 @@ AccessibleWrap::get_accRole( } if (!roleString.IsEmpty()) { pvarRole->vt = VT_BSTR; pvarRole->bstrVal = ::SysAllocString(roleString.get()); return S_OK; } } -} __except(FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } + return E_FAIL; + + A11Y_TRYBLOCK_END } STDMETHODIMP AccessibleWrap::get_accState( /* [optional][in] */ VARIANT varChild, /* [retval][out] */ VARIANT __RPC_FAR *pvarState) { -__try { + A11Y_TRYBLOCK_BEGIN + VariantInit(pvarState); pvarState->vt = VT_I4; pvarState->lVal = 0; if (IsDefunct()) return CO_E_OBJNOTCONNECTED; Accessible* xpAccessible = GetXPAccessibleFor(varChild); @@ -469,57 +477,57 @@ AccessibleWrap::get_accState( // REQUIRED -> ALERT_LOW // ALERT -> ALERT_MEDIUM // INVALID -> ALERT_HIGH // CHECKABLE -> MARQUEED uint32_t msaaState = 0; nsAccUtils::To32States(xpAccessible->State(), &msaaState, nullptr); pvarState->lVal = msaaState; -} __except(FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } return S_OK; + + A11Y_TRYBLOCK_END } STDMETHODIMP AccessibleWrap::get_accHelp( /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR __RPC_FAR *pszHelp) { -__try { + A11Y_TRYBLOCK_BEGIN + *pszHelp = NULL; return S_FALSE; -} __except(FilterA11yExceptions(::GetExceptionCode(), - GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP AccessibleWrap::get_accHelpTopic( /* [out] */ BSTR __RPC_FAR *pszHelpFile, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ long __RPC_FAR *pidTopic) { -__try { + A11Y_TRYBLOCK_BEGIN + *pszHelpFile = NULL; *pidTopic = 0; return S_FALSE; -} __except(FilterA11yExceptions(::GetExceptionCode(), - GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP AccessibleWrap::get_accKeyboardShortcut( /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR __RPC_FAR *pszKeyboardShortcut) { -__try { + A11Y_TRYBLOCK_BEGIN + if (!pszKeyboardShortcut) return E_INVALIDARG; *pszKeyboardShortcut = NULL; if (IsDefunct()) return CO_E_OBJNOTCONNECTED; Accessible* acc = GetXPAccessibleFor(varChild); @@ -534,31 +542,32 @@ AccessibleWrap::get_accKeyboardShortcut( keyBinding = acc->KeyboardShortcut(); nsAutoString shortcut; keyBinding.ToString(shortcut); *pszKeyboardShortcut = ::SysAllocStringLen(shortcut.get(), shortcut.Length()); return *pszKeyboardShortcut ? S_OK : E_OUTOFMEMORY; -} __except(FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + + A11Y_TRYBLOCK_END } STDMETHODIMP AccessibleWrap::get_accFocus( /* [retval][out] */ VARIANT __RPC_FAR *pvarChild) { + A11Y_TRYBLOCK_BEGIN + // VT_EMPTY: None. This object does not have the keyboard focus itself // and does not contain a child that has the keyboard focus. // VT_I4: lVal is CHILDID_SELF. The object itself has the keyboard focus. // VT_I4: lVal contains the child ID of the child element with the keyboard focus. // VT_DISPATCH: pdispVal member is the address of the IDispatch interface // for the child object with the keyboard focus. -__try { if (IsDefunct()) return CO_E_OBJNOTCONNECTED; VariantInit(pvarChild); // Return the current IAccessible child that has focus Accessible* focusedAccessible = FocusedChild(); if (focusedAccessible == this) { @@ -568,18 +577,19 @@ AccessibleWrap::get_accFocus( else if (focusedAccessible) { pvarChild->vt = VT_DISPATCH; pvarChild->pdispVal = NativeAccessible(focusedAccessible); } else { pvarChild->vt = VT_EMPTY; // No focus or focus is not a child } -} __except(FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } return S_OK; + + A11Y_TRYBLOCK_END } // This helper class implements IEnumVARIANT for a nsIArray containing nsIAccessible objects. class AccessibleEnumerator : public IEnumVARIANT { public: AccessibleEnumerator(nsIArray* aArray) : mArray(aArray), mCurIndex(0) { } @@ -606,31 +616,33 @@ private: nsCOMPtr<nsIArray> mArray; uint32_t mCurIndex; nsAutoRefCnt mRefCnt; }; HRESULT AccessibleEnumerator::QueryInterface(REFIID iid, void ** ppvObject) { -__try { + A11Y_TRYBLOCK_BEGIN + if (iid == IID_IEnumVARIANT) { *ppvObject = static_cast<IEnumVARIANT*>(this); AddRef(); return S_OK; } if (iid == IID_IUnknown) { *ppvObject = static_cast<IUnknown*>(this); AddRef(); return S_OK; } *ppvObject = NULL; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } return E_NOINTERFACE; + + A11Y_TRYBLOCK_END } STDMETHODIMP_(ULONG) AccessibleEnumerator::AddRef(void) { return ++mRefCnt; } @@ -641,17 +653,18 @@ AccessibleEnumerator::Release(void) if (r == 0) delete this; return r; } STDMETHODIMP AccessibleEnumerator::Next(unsigned long celt, VARIANT FAR* rgvar, unsigned long FAR* pceltFetched) { -__try { + A11Y_TRYBLOCK_BEGIN + uint32_t length = 0; mArray->GetLength(&length); HRESULT hr = S_OK; // Can't get more elements than there are... if (celt > length - mCurIndex) { hr = S_FALSE; @@ -668,47 +681,50 @@ AccessibleEnumerator::Next(unsigned long rgvar[i].pdispVal = AccessibleWrap::NativeAccessible(accel); } } if (pceltFetched) *pceltFetched = celt; return hr; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return S_OK; + A11Y_TRYBLOCK_END } STDMETHODIMP AccessibleEnumerator::Clone(IEnumVARIANT FAR* FAR* ppenum) { -__try { + A11Y_TRYBLOCK_BEGIN + *ppenum = new AccessibleEnumerator(*this); if (!*ppenum) return E_OUTOFMEMORY; NS_ADDREF(*ppenum); -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } return S_OK; + + A11Y_TRYBLOCK_END } STDMETHODIMP AccessibleEnumerator::Skip(unsigned long celt) { -__try { + A11Y_TRYBLOCK_BEGIN + uint32_t length = 0; mArray->GetLength(&length); // Check if we can skip the requested number of elements if (celt > length - mCurIndex) { mCurIndex = length; return S_FALSE; } mCurIndex += celt; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } return S_OK; + + A11Y_TRYBLOCK_END } /** * This method is called when a client wants to know which children of a node * are selected. Note that this method can only find selected children for * nsIAccessible object which implement SelectAccessible. * * The VARIANT return value arguement is expected to either contain a single IAccessible @@ -721,17 +737,18 @@ AccessibleEnumerator::Skip(unsigned long * * returns a VT_EMPTY VARIANT if: * - there are no selected children for this object * - the object is not the type that can have children selected */ STDMETHODIMP AccessibleWrap::get_accSelection(VARIANT __RPC_FAR *pvarChildren) { -__try { + A11Y_TRYBLOCK_BEGIN + VariantInit(pvarChildren); pvarChildren->vt = VT_EMPTY; if (IsDefunct()) return CO_E_OBJNOTCONNECTED; if (IsSelect()) { nsCOMPtr<nsIArray> selectedItems = SelectedItems(); @@ -742,26 +759,28 @@ AccessibleWrap::get_accSelection(VARIANT // 2) Put the enumerator in the VARIANT if (!pEnum) return E_OUTOFMEMORY; pvarChildren->vt = VT_UNKNOWN; // this must be VT_UNKNOWN for an IEnumVARIANT NS_ADDREF(pvarChildren->punkVal = pEnum); } } -} __except(FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } return S_OK; + + A11Y_TRYBLOCK_END } STDMETHODIMP AccessibleWrap::get_accDefaultAction( /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR __RPC_FAR *pszDefaultAction) { -__try { + A11Y_TRYBLOCK_BEGIN + *pszDefaultAction = NULL; if (IsDefunct()) return CO_E_OBJNOTCONNECTED; Accessible* xpAccessible = GetXPAccessibleFor(varChild); if (!xpAccessible) return E_INVALIDARG; @@ -772,26 +791,26 @@ AccessibleWrap::get_accDefaultAction( nsAutoString defaultAction; if (NS_FAILED(xpAccessible->GetActionName(0, defaultAction))) return E_FAIL; *pszDefaultAction = ::SysAllocStringLen(defaultAction.get(), defaultAction.Length()); return *pszDefaultAction ? S_OK : E_OUTOFMEMORY; -} __except(FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP AccessibleWrap::accSelect( /* [in] */ long flagsSelect, /* [optional][in] */ VARIANT varChild) { -__try { + A11Y_TRYBLOCK_BEGIN + if (IsDefunct()) return CO_E_OBJNOTCONNECTED; // currently only handle focus and selection Accessible* xpAccessible = GetXPAccessibleFor(varChild); if (!xpAccessible) return E_INVALIDARG; @@ -813,29 +832,31 @@ AccessibleWrap::accSelect( xpAccessible->SetSelected(false); if (flagsSelect & SELFLAG_EXTENDSELECTION) xpAccessible->ExtendSelection(); return S_OK; } -} __except(FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } return E_FAIL; + + A11Y_TRYBLOCK_END } STDMETHODIMP AccessibleWrap::accLocation( /* [out] */ long __RPC_FAR *pxLeft, /* [out] */ long __RPC_FAR *pyTop, /* [out] */ long __RPC_FAR *pcxWidth, /* [out] */ long __RPC_FAR *pcyHeight, /* [optional][in] */ VARIANT varChild) { -__try { + A11Y_TRYBLOCK_BEGIN + if (IsDefunct()) return CO_E_OBJNOTCONNECTED; Accessible* xpAccessible = GetXPAccessibleFor(varChild); if (!xpAccessible) return E_INVALIDARG; if (xpAccessible->IsDefunct()) @@ -846,28 +867,27 @@ AccessibleWrap::accLocation( return E_FAIL; *pxLeft = x; *pyTop = y; *pcxWidth = width; *pcyHeight = height; return S_OK; -} __except(FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP AccessibleWrap::accNavigate( /* [in] */ long navDir, /* [optional][in] */ VARIANT varStart, /* [retval][out] */ VARIANT __RPC_FAR *pvarEndUpAt) { -__try { + A11Y_TRYBLOCK_BEGIN + if (!pvarEndUpAt) return E_INVALIDARG; if (IsDefunct()) return CO_E_OBJNOTCONNECTED; Accessible* accessible = GetXPAccessibleFor(varStart); if (!accessible) @@ -958,32 +978,34 @@ AccessibleWrap::accNavigate( pvarEndUpAt->vt = VT_EMPTY; if (xpRelation) { Relation rel = RelationByType(xpRelation); navAccessible = rel.Next(); } - if (navAccessible) { - pvarEndUpAt->pdispVal = NativeAccessible(navAccessible); - pvarEndUpAt->vt = VT_DISPATCH; - return S_OK; - } -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + if (!navAccessible) + return E_FAIL; + + pvarEndUpAt->pdispVal = NativeAccessible(navAccessible); + pvarEndUpAt->vt = VT_DISPATCH; + return S_OK; + + A11Y_TRYBLOCK_END } STDMETHODIMP AccessibleWrap::accHitTest( /* [in] */ long xLeft, /* [in] */ long yTop, /* [retval][out] */ VARIANT __RPC_FAR *pvarChild) { -__try { + A11Y_TRYBLOCK_BEGIN + VariantInit(pvarChild); if (IsDefunct()) return CO_E_OBJNOTCONNECTED; Accessible* accessible = ChildAtPoint(xLeft, yTop, eDirectChild); // if we got a child @@ -996,40 +1018,40 @@ AccessibleWrap::accHitTest( pvarChild->vt = VT_DISPATCH; pvarChild->pdispVal = NativeAccessible(accessible); } } else { // no child at that point pvarChild->vt = VT_EMPTY; return S_FALSE; } -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } + return S_OK; - return S_OK; + A11Y_TRYBLOCK_END } STDMETHODIMP AccessibleWrap::accDoDefaultAction( /* [optional][in] */ VARIANT varChild) { -__try { + A11Y_TRYBLOCK_BEGIN + if (IsDefunct()) return CO_E_OBJNOTCONNECTED; Accessible* xpAccessible = GetXPAccessibleFor(varChild); if (!xpAccessible) return E_INVALIDARG; if (xpAccessible->IsDefunct()) return CO_E_OBJNOTCONNECTED; return GetHRESULT(xpAccessible->DoAction(0)); -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP AccessibleWrap::put_accName( /* [optional][in] */ VARIANT varChild, /* [in] */ BSTR szName) { return E_NOTIMPL; @@ -1044,41 +1066,43 @@ AccessibleWrap::put_accValue( } //////////////////////////////////////////////////////////////////////////////// // AccessibleWrap. IAccessible2 STDMETHODIMP AccessibleWrap::get_nRelations(long *aNRelations) { -__try { + A11Y_TRYBLOCK_BEGIN + if (!aNRelations) return E_INVALIDARG; *aNRelations = 0; if (IsDefunct()) return CO_E_OBJNOTCONNECTED; for (uint32_t relType = nsIAccessibleRelation::RELATION_FIRST; relType <= nsIAccessibleRelation::RELATION_LAST; relType++) { Relation rel = RelationByType(relType); if (rel.Next()) (*aNRelations)++; } return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + + A11Y_TRYBLOCK_END } STDMETHODIMP AccessibleWrap::get_relation(long aRelationIndex, IAccessibleRelation** aRelation) { -__try { + A11Y_TRYBLOCK_BEGIN + if (!aRelation) return E_INVALIDARG; *aRelation = NULL; if (IsDefunct()) return CO_E_OBJNOTCONNECTED; @@ -1094,26 +1118,27 @@ AccessibleWrap::get_relation(long aRelat return S_OK; } relIdx++; } } return E_INVALIDARG; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + + A11Y_TRYBLOCK_END } STDMETHODIMP AccessibleWrap::get_relations(long aMaxRelations, IAccessibleRelation **aRelation, long *aNRelations) { -__try { + A11Y_TRYBLOCK_BEGIN + if (!aRelation || !aNRelations) return E_INVALIDARG; *aNRelations = 0; if (IsDefunct()) return CO_E_OBJNOTCONNECTED; @@ -1125,24 +1150,24 @@ AccessibleWrap::get_relations(long aMaxR new ia2AccessibleRelation(relType, &rel); if (ia2Rel->HasTargets()) { ia2Rel.forget(aRelation + (*aNRelations)); (*aNRelations)++; } } return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP AccessibleWrap::role(long *aRole) { -__try { + A11Y_TRYBLOCK_BEGIN + *aRole = 0; if (IsDefunct()) return CO_E_OBJNOTCONNECTED; #define ROLE(_geckoRole, stringRole, atkRole, macRole, \ msaaRole, ia2Role, nameRule) \ case roles::_geckoRole: \ @@ -1163,59 +1188,59 @@ AccessibleWrap::role(long *aRole) if (geckoRole == roles::ROW) { Accessible* xpParent = Parent(); if (xpParent && xpParent->Role() == roles::TREE_TABLE) *aRole = ROLE_SYSTEM_OUTLINEITEM; } return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP AccessibleWrap::scrollTo(enum IA2ScrollType aScrollType) { -__try { + A11Y_TRYBLOCK_BEGIN + if (IsDefunct()) return CO_E_OBJNOTCONNECTED; nsCoreUtils::ScrollTo(mDoc->PresShell(), mContent, aScrollType); return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP AccessibleWrap::scrollToPoint(enum IA2CoordinateType aCoordType, long aX, long aY) { -__try { + A11Y_TRYBLOCK_BEGIN + if (IsDefunct()) return CO_E_OBJNOTCONNECTED; uint32_t geckoCoordType = (aCoordType == IA2_COORDTYPE_SCREEN_RELATIVE) ? nsIAccessibleCoordinateType::COORDTYPE_SCREEN_RELATIVE : nsIAccessibleCoordinateType::COORDTYPE_PARENT_RELATIVE; nsresult rv = ScrollToPoint(geckoCoordType, aX, aY); return GetHRESULT(rv); -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP AccessibleWrap::get_groupPosition(long *aGroupLevel, long *aSimilarItemsInGroup, long *aPositionInGroup) { -__try { + A11Y_TRYBLOCK_BEGIN + if (IsDefunct()) return CO_E_OBJNOTCONNECTED; GroupPos groupPos = GroupPosition(); // Group information for accessibles having level only (like html headings // elements) isn't exposed by this method. AT should look for 'level' object // attribute. @@ -1223,24 +1248,24 @@ AccessibleWrap::get_groupPosition(long * return S_FALSE; *aGroupLevel = groupPos.level; *aSimilarItemsInGroup = groupPos.setSize; *aPositionInGroup = groupPos.posInSet; return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP AccessibleWrap::get_states(AccessibleStates *aStates) { -__try { + A11Y_TRYBLOCK_BEGIN + *aStates = 0; // XXX: bug 344674 should come with better approach that we have here. uint64_t state = State(); if (state & states::INVALID) *aStates |= IA2_STATE_INVALID_ENTRY; @@ -1277,127 +1302,133 @@ AccessibleWrap::get_states(AccessibleSta *aStates |= IA2_STATE_SUPPORTS_AUTOCOMPLETION; if (state & states::TRANSIENT) *aStates |= IA2_STATE_TRANSIENT; if (state & states::VERTICAL) *aStates |= IA2_STATE_VERTICAL; return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP AccessibleWrap::get_extendedRole(BSTR *aExtendedRole) { -__try { + A11Y_TRYBLOCK_BEGIN + *aExtendedRole = NULL; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } + return E_NOTIMPL; - return E_NOTIMPL; + A11Y_TRYBLOCK_END } STDMETHODIMP AccessibleWrap::get_localizedExtendedRole(BSTR *aLocalizedExtendedRole) { -__try { + A11Y_TRYBLOCK_BEGIN + *aLocalizedExtendedRole = NULL; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } + return E_NOTIMPL; - return E_NOTIMPL; + A11Y_TRYBLOCK_END } STDMETHODIMP AccessibleWrap::get_nExtendedStates(long *aNExtendedStates) { -__try { + A11Y_TRYBLOCK_BEGIN + *aNExtendedStates = 0; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } + return E_NOTIMPL; - return E_NOTIMPL; + A11Y_TRYBLOCK_END } STDMETHODIMP AccessibleWrap::get_extendedStates(long aMaxExtendedStates, BSTR **aExtendedStates, long *aNExtendedStates) { -__try { + A11Y_TRYBLOCK_BEGIN + *aExtendedStates = NULL; *aNExtendedStates = 0; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } + return E_NOTIMPL; - return E_NOTIMPL; + A11Y_TRYBLOCK_END } STDMETHODIMP AccessibleWrap::get_localizedExtendedStates(long aMaxLocalizedExtendedStates, BSTR** aLocalizedExtendedStates, long* aNLocalizedExtendedStates) { -__try { + A11Y_TRYBLOCK_BEGIN + *aLocalizedExtendedStates = NULL; *aNLocalizedExtendedStates = 0; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } + return E_NOTIMPL; - return E_NOTIMPL; + A11Y_TRYBLOCK_END } STDMETHODIMP AccessibleWrap::get_uniqueID(long *uniqueID) { -__try { + A11Y_TRYBLOCK_BEGIN + *uniqueID = - reinterpret_cast<long>(UniqueID()); return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP AccessibleWrap::get_windowHandle(HWND *aWindowHandle) { -__try { + A11Y_TRYBLOCK_BEGIN + *aWindowHandle = 0; if (IsDefunct()) return CO_E_OBJNOTCONNECTED; *aWindowHandle = GetHWNDFor(this); return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP AccessibleWrap::get_indexInParent(long *aIndexInParent) { -__try { + A11Y_TRYBLOCK_BEGIN + if (!aIndexInParent) return E_INVALIDARG; *aIndexInParent = -1; if (IsDefunct()) return CO_E_OBJNOTCONNECTED; *aIndexInParent = IndexInParent(); if (*aIndexInParent == -1) return S_FALSE; return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + + A11Y_TRYBLOCK_END } STDMETHODIMP AccessibleWrap::get_locale(IA2Locale *aLocale) { -__try { + A11Y_TRYBLOCK_BEGIN + // Language codes consist of a primary code and a possibly empty series of // subcodes: language-code = primary-code ( "-" subcode )* // Two-letter primary codes are reserved for [ISO639] language abbreviations. // Any two-letter subcode is understood to be a [ISO3166] country code. if (IsDefunct()) return CO_E_OBJNOTCONNECTED; @@ -1427,36 +1458,35 @@ AccessibleWrap::get_locale(IA2Locale *aL } } // Expose as a string if primary code or subcode cannot point to language or // country abbreviations or if there are more than one subcode. aLocale->variant = ::SysAllocString(lang.get()); return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP AccessibleWrap::get_attributes(BSTR *aAttributes) { + A11Y_TRYBLOCK_BEGIN + // The format is name:value;name:value; with \ for escaping these // characters ":;=,\". -__try { *aAttributes = NULL; if (IsDefunct()) return CO_E_OBJNOTCONNECTED; nsCOMPtr<nsIPersistentProperties> attributes = Attributes(); return ConvertToIA2Attributes(attributes, aAttributes); -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } //////////////////////////////////////////////////////////////////////////////// // IDispatch STDMETHODIMP AccessibleWrap::GetTypeInfoCount(UINT *pctinfo) {
--- a/accessible/src/msaa/AccessibleWrap.h +++ b/accessible/src/msaa/AccessibleWrap.h @@ -38,28 +38,26 @@ public: #define DECL_IUNKNOWN_INHERITED \ public: \ virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID, void**); \ #define IMPL_IUNKNOWN_QUERY_HEAD(Class) \ STDMETHODIMP \ Class::QueryInterface(REFIID aIID, void** aInstancePtr) \ { \ -__try { \ + A11Y_TRYBLOCK_BEGIN \ if (!aInstancePtr) \ return E_INVALIDARG; \ *aInstancePtr = NULL; \ \ HRESULT hr = E_NOINTERFACE; #define IMPL_IUNKNOWN_QUERY_TAIL \ return hr; \ -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), \ - GetExceptionInformation())) { } \ - return E_NOINTERFACE; \ + A11Y_TRYBLOCK_END \ } #define IMPL_IUNKNOWN_QUERY_IFACE(Iface) \ if (aIID == IID_##Iface) { \ *aInstancePtr = static_cast<Iface*>(this); \ AddRef(); \ return S_OK; \ }
--- a/accessible/src/msaa/ApplicationAccessibleWrap.cpp +++ b/accessible/src/msaa/ApplicationAccessibleWrap.cpp @@ -59,105 +59,105 @@ ApplicationAccessibleWrap::QueryInterfac } //////////////////////////////////////////////////////////////////////////////// // IAccessibleApplication STDMETHODIMP ApplicationAccessibleWrap::get_appName(BSTR* aName) { -__try { + A11Y_TRYBLOCK_BEGIN + *aName = NULL; if (IsDefunct()) return CO_E_OBJNOTCONNECTED; nsAutoString name; nsresult rv = GetAppName(name); if (NS_FAILED(rv)) return GetHRESULT(rv); if (name.IsEmpty()) return S_FALSE; *aName = ::SysAllocStringLen(name.get(), name.Length()); return *aName ? S_OK : E_OUTOFMEMORY; -} __except(FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ApplicationAccessibleWrap::get_appVersion(BSTR* aVersion) { -__try { + A11Y_TRYBLOCK_BEGIN + *aVersion = NULL; if (IsDefunct()) return CO_E_OBJNOTCONNECTED; nsAutoString version; nsresult rv = GetAppVersion(version); if (NS_FAILED(rv)) return GetHRESULT(rv); if (version.IsEmpty()) return S_FALSE; *aVersion = ::SysAllocStringLen(version.get(), version.Length()); return *aVersion ? S_OK : E_OUTOFMEMORY; -} __except(FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ApplicationAccessibleWrap::get_toolkitName(BSTR* aName) { -__try { + A11Y_TRYBLOCK_BEGIN + if (IsDefunct()) return CO_E_OBJNOTCONNECTED; nsAutoString name; nsresult rv = GetPlatformName(name); if (NS_FAILED(rv)) return GetHRESULT(rv); if (name.IsEmpty()) return S_FALSE; *aName = ::SysAllocStringLen(name.get(), name.Length()); return *aName ? S_OK : E_OUTOFMEMORY; -} __except(FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ApplicationAccessibleWrap::get_toolkitVersion(BSTR* aVersion) { -__try { + A11Y_TRYBLOCK_BEGIN + *aVersion = NULL; if (IsDefunct()) return CO_E_OBJNOTCONNECTED; nsAutoString version; nsresult rv = GetPlatformVersion(version); if (NS_FAILED(rv)) return GetHRESULT(rv); if (version.IsEmpty()) return S_FALSE; *aVersion = ::SysAllocStringLen(version.get(), version.Length()); return *aVersion ? S_OK : E_OUTOFMEMORY; -} __except(FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } //////////////////////////////////////////////////////////////////////////////// // ApplicationAccessibleWrap public static void ApplicationAccessibleWrap::PreCreate() {
--- a/accessible/src/msaa/DocAccessibleWrap.cpp +++ b/accessible/src/msaa/DocAccessibleWrap.cpp @@ -73,99 +73,100 @@ DocAccessibleWrap::QueryInterface(REFIID *ppv = static_cast<ISimpleDOMDocument*>(this); (reinterpret_cast<IUnknown*>(*ppv))->AddRef(); return S_OK; } STDMETHODIMP DocAccessibleWrap::get_URL(/* [out] */ BSTR __RPC_FAR *aURL) { -__try { + A11Y_TRYBLOCK_BEGIN + *aURL = NULL; nsAutoString URL; nsresult rv = GetURL(URL); if (NS_FAILED(rv)) return E_FAIL; if (URL.IsEmpty()) return S_FALSE; *aURL = ::SysAllocStringLen(URL.get(), URL.Length()); return *aURL ? S_OK : E_OUTOFMEMORY; -} __except(FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP DocAccessibleWrap::get_title( /* [out] */ BSTR __RPC_FAR *aTitle) { -__try { + A11Y_TRYBLOCK_BEGIN + *aTitle = NULL; nsAutoString title; nsresult rv = GetTitle(title); if (NS_FAILED(rv)) return E_FAIL; *aTitle = ::SysAllocStringLen(title.get(), title.Length()); return *aTitle ? S_OK : E_OUTOFMEMORY; -} __except(FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP DocAccessibleWrap::get_mimeType(/* [out] */ BSTR __RPC_FAR *aMimeType) { -__try { + A11Y_TRYBLOCK_BEGIN + *aMimeType = NULL; nsAutoString mimeType; nsresult rv = GetMimeType(mimeType); if (NS_FAILED(rv)) return E_FAIL; if (mimeType.IsEmpty()) return S_FALSE; *aMimeType = ::SysAllocStringLen(mimeType.get(), mimeType.Length()); return *aMimeType ? S_OK : E_OUTOFMEMORY; -} __except(FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP DocAccessibleWrap::get_docType(/* [out] */ BSTR __RPC_FAR *aDocType) { -__try { + A11Y_TRYBLOCK_BEGIN + *aDocType = NULL; nsAutoString docType; nsresult rv = GetDocType(docType); if (NS_FAILED(rv)) return E_FAIL; if (docType.IsEmpty()) return S_FALSE; *aDocType = ::SysAllocStringLen(docType.get(), docType.Length()); return *aDocType ? S_OK : E_OUTOFMEMORY; -} __except(FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP DocAccessibleWrap::get_nameSpaceURIForID(/* [in] */ short aNameSpaceID, /* [out] */ BSTR __RPC_FAR *aNameSpaceURI) { -__try { + A11Y_TRYBLOCK_BEGIN + *aNameSpaceURI = NULL; if (aNameSpaceID < 0) return E_INVALIDARG; // -1 is kNameSpaceID_Unknown nsAutoString nameSpaceURI; nsresult rv = GetNameSpaceURIForID(aNameSpaceID, nameSpaceURI); if (NS_FAILED(rv)) @@ -174,28 +175,28 @@ DocAccessibleWrap::get_nameSpaceURIForID if (nameSpaceURI.IsEmpty()) return S_FALSE; *aNameSpaceURI = ::SysAllocStringLen(nameSpaceURI.get(), nameSpaceURI.Length()); return *aNameSpaceURI ? S_OK : E_OUTOFMEMORY; -} __except(FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP DocAccessibleWrap::put_alternateViewMediaTypes( /* [in] */ BSTR __RPC_FAR *aCommaSeparatedMediaTypes) { -__try { + A11Y_TRYBLOCK_BEGIN + *aCommaSeparatedMediaTypes = NULL; -} __except(FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } + return E_NOTIMPL; - return E_NOTIMPL; + A11Y_TRYBLOCK_END } STDMETHODIMP DocAccessibleWrap::get_accValue( /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR __RPC_FAR *pszValue) { // For backwards-compat, we still support old MSAA hack to provide URL in accValue
--- a/accessible/src/msaa/EnumVariant.cpp +++ b/accessible/src/msaa/EnumVariant.cpp @@ -18,17 +18,18 @@ IMPL_IUNKNOWN_QUERY_IFACE(IEnumVARIANT); IMPL_IUNKNOWN_QUERY_IFACE(IUnknown); IMPL_IUNKNOWN_QUERY_AGGR_COND(mAnchorAcc, !mAnchorAcc->IsDefunct()); IMPL_IUNKNOWN_QUERY_TAIL STDMETHODIMP ChildrenEnumVariant::Next(ULONG aCount, VARIANT FAR* aItems, ULONG FAR* aCountFetched) { -__try { + A11Y_TRYBLOCK_BEGIN + if (!aItems || !aCountFetched) return E_INVALIDARG; *aCountFetched = 0; if (mAnchorAcc->IsDefunct() || mAnchorAcc->GetChildAt(mCurIndex) != mCurAcc) return CO_E_OBJNOTCONNECTED; @@ -41,66 +42,58 @@ ChildrenEnumVariant::Next(ULONG aCount, mCurIndex++; mCurAcc = mAnchorAcc->GetChildAt(mCurIndex); } (*aCountFetched) = countFetched; return countFetched < aCount ? S_FALSE : S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), - GetExceptionInformation())) { } - - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ChildrenEnumVariant::Skip(ULONG aCount) { -__try { + A11Y_TRYBLOCK_BEGIN + if (mAnchorAcc->IsDefunct() || mAnchorAcc->GetChildAt(mCurIndex) != mCurAcc) return CO_E_OBJNOTCONNECTED; mCurIndex += aCount; mCurAcc = mAnchorAcc->GetChildAt(mCurIndex); return mCurAcc ? S_OK : S_FALSE; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), - GetExceptionInformation())) { } - - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ChildrenEnumVariant::Reset() { -__try { + A11Y_TRYBLOCK_BEGIN + if (mAnchorAcc->IsDefunct()) return CO_E_OBJNOTCONNECTED; mCurIndex = 0; mCurAcc = mAnchorAcc->GetChildAt(0); return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), - GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ChildrenEnumVariant::Clone(IEnumVARIANT** aEnumVariant) { -__try { + A11Y_TRYBLOCK_BEGIN + if (!aEnumVariant) return E_INVALIDARG; *aEnumVariant = new ChildrenEnumVariant(*this); (*aEnumVariant)->AddRef(); return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), - GetExceptionInformation())) { } - - return E_FAIL; + A11Y_TRYBLOCK_END }
--- a/accessible/src/msaa/TextLeafAccessibleWrap.cpp +++ b/accessible/src/msaa/TextLeafAccessibleWrap.cpp @@ -57,48 +57,49 @@ TextLeafAccessibleWrap::QueryInterface(R (reinterpret_cast<IUnknown*>(*ppv))->AddRef(); return S_OK; } STDMETHODIMP TextLeafAccessibleWrap::get_domText( /* [retval][out] */ BSTR __RPC_FAR *aDomText) { -__try { + A11Y_TRYBLOCK_BEGIN + *aDomText = NULL; if (IsDefunct()) return E_FAIL; nsAutoString nodeValue; nsCOMPtr<nsIDOMNode> DOMNode(do_QueryInterface(mContent)); DOMNode->GetNodeValue(nodeValue); if (nodeValue.IsEmpty()) return S_FALSE; *aDomText = ::SysAllocStringLen(nodeValue.get(), nodeValue.Length()); if (!*aDomText) return E_OUTOFMEMORY; + return S_OK; -} __except(FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - - return S_OK; + A11Y_TRYBLOCK_END } STDMETHODIMP TextLeafAccessibleWrap::get_clippedSubstringBounds( /* [in] */ unsigned int aStartIndex, /* [in] */ unsigned int aEndIndex, /* [out] */ int __RPC_FAR *aX, /* [out] */ int __RPC_FAR *aY, /* [out] */ int __RPC_FAR *aWidth, /* [out] */ int __RPC_FAR *aHeight) { -__try { + A11Y_TRYBLOCK_BEGIN + *aX = *aY = *aWidth = *aHeight = 0; nscoord x, y, width, height, docX, docY, docWidth, docHeight; HRESULT rv = get_unclippedSubstringBounds(aStartIndex, aEndIndex, &x, &y, &width, &height); if (FAILED(rv)) { return rv; } DocAccessible* docAccessible = Document(); @@ -112,68 +113,69 @@ TextLeafAccessibleWrap::get_clippedSubst nsIntRect clippedRect; clippedRect.IntersectRect(unclippedRect, docRect); *aX = clippedRect.x; *aY = clippedRect.y; *aWidth = clippedRect.width; *aHeight = clippedRect.height; -} __except(FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } + return S_OK; - return S_OK; + A11Y_TRYBLOCK_END } STDMETHODIMP TextLeafAccessibleWrap::get_unclippedSubstringBounds( /* [in] */ unsigned int aStartIndex, /* [in] */ unsigned int aEndIndex, /* [out] */ int __RPC_FAR *aX, /* [out] */ int __RPC_FAR *aY, /* [out] */ int __RPC_FAR *aWidth, /* [out] */ int __RPC_FAR *aHeight) { -__try { + A11Y_TRYBLOCK_BEGIN + *aX = *aY = *aWidth = *aHeight = 0; if (IsDefunct()) return E_FAIL; if (FAILED(GetCharacterExtents(aStartIndex, aEndIndex, aX, aY, aWidth, aHeight))) { return E_FAIL; } -} __except(FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } + return S_OK; - return S_OK; + A11Y_TRYBLOCK_END } STDMETHODIMP TextLeafAccessibleWrap::scrollToSubstring( /* [in] */ unsigned int aStartIndex, /* [in] */ unsigned int aEndIndex) { -__try { + A11Y_TRYBLOCK_BEGIN + if (IsDefunct()) return E_FAIL; nsRefPtr<nsRange> range = new nsRange(); if (NS_FAILED(range->SetStart(mContent, aStartIndex))) return E_FAIL; if (NS_FAILED(range->SetEnd(mContent, aEndIndex))) return E_FAIL; nsresult rv = nsCoreUtils::ScrollSubstringTo(GetFrame(), range, nsIAccessibleScrollType::SCROLL_TYPE_ANYWHERE); - if (NS_FAILED(rv)) - return E_FAIL; -} __except(FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return S_OK; + return NS_SUCCEEDED(rv) ? S_OK : E_FAIL; + + A11Y_TRYBLOCK_END } nsIFrame* TextLeafAccessibleWrap::GetPointFromOffset(nsIFrame* aContainingFrame, int32_t aOffset, bool aPreferNext, nsPoint& aOutPoint) { @@ -237,17 +239,18 @@ TextLeafAccessibleWrap::GetCharacterExte return S_OK; } STDMETHODIMP TextLeafAccessibleWrap::get_fontFamily( /* [retval][out] */ BSTR __RPC_FAR *aFontFamily) { -__try { + A11Y_TRYBLOCK_BEGIN + *aFontFamily = NULL; nsIFrame* frame = GetFrame(); if (!frame) { return E_FAIL; } nsRefPtr<nsFontMetrics> fm; @@ -255,14 +258,12 @@ TextLeafAccessibleWrap::get_fontFamily( const nsString& name = fm->GetThebesFontGroup()->GetFontAt(0)->GetName(); if (name.IsEmpty()) return S_FALSE; *aFontFamily = ::SysAllocStringLen(name.get(), name.Length()); if (!*aFontFamily) return E_OUTOFMEMORY; + return S_OK; -} __except(FilterA11yExceptions(::GetExceptionCode(), - GetExceptionInformation())) { } - - return S_OK; + A11Y_TRYBLOCK_END }
--- a/accessible/src/msaa/nsAccessNodeWrap.h +++ b/accessible/src/msaa/nsAccessNodeWrap.h @@ -29,22 +29,22 @@ #include <winuser.h> #ifdef MOZ_CRASHREPORTER #include "nsICrashReporter.h" #endif #include "nsRefPtrHashtable.h" #define A11Y_TRYBLOCK_BEGIN \ - __try { + MOZ_SEH_TRY { -#define A11Y_TRYBLOCK_END \ - } __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), \ - GetExceptionInformation()))\ - { } \ +#define A11Y_TRYBLOCK_END \ + } MOZ_SEH_EXCEPT(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), \ + GetExceptionInformation())) \ + { } \ return E_FAIL; namespace mozilla { namespace a11y { class AccTextChangeEvent; class nsAccessNodeWrap : public nsAccessNode,
--- a/accessible/src/windows/ia2/ia2AccessibleAction.cpp +++ b/accessible/src/windows/ia2/ia2AccessibleAction.cpp @@ -29,53 +29,54 @@ ia2AccessibleAction::QueryInterface(REFI return E_NOINTERFACE; } // IAccessibleAction STDMETHODIMP ia2AccessibleAction::nActions(long* aActionCount) { -__try { + A11Y_TRYBLOCK_BEGIN + if (!aActionCount) return E_INVALIDARG; *aActionCount = 0; AccessibleWrap* acc = static_cast<AccessibleWrap*>(this); if (acc->IsDefunct()) return CO_E_OBJNOTCONNECTED; *aActionCount = acc->ActionCount(); return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleAction::doAction(long aActionIndex) { -__try { + A11Y_TRYBLOCK_BEGIN + AccessibleWrap* acc = static_cast<AccessibleWrap*>(this); if (acc->IsDefunct()) return CO_E_OBJNOTCONNECTED; uint8_t index = static_cast<uint8_t>(aActionIndex); nsresult rv = acc->DoAction(index); return GetHRESULT(rv); -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleAction::get_description(long aActionIndex, BSTR *aDescription) { -__try { + A11Y_TRYBLOCK_BEGIN + *aDescription = NULL; AccessibleWrap* acc = static_cast<AccessibleWrap*>(this); if (acc->IsDefunct()) return CO_E_OBJNOTCONNECTED; nsAutoString description; uint8_t index = static_cast<uint8_t>(aActionIndex); @@ -85,26 +86,26 @@ ia2AccessibleAction::get_description(lon if (description.IsEmpty()) return S_FALSE; *aDescription = ::SysAllocStringLen(description.get(), description.Length()); return *aDescription ? S_OK : E_OUTOFMEMORY; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleAction::get_keyBinding(long aActionIndex, long aNumMaxBinding, BSTR **aKeyBinding, long *aNumBinding) { -__try { + A11Y_TRYBLOCK_BEGIN + if (!aKeyBinding) return E_INVALIDARG; *aKeyBinding = NULL; if (!aNumBinding) return E_INVALIDARG; *aNumBinding = 0; @@ -135,24 +136,24 @@ ia2AccessibleAction::get_keyBinding(long if (!*(aKeyBinding[0])) { ::CoTaskMemFree(*aKeyBinding); return E_OUTOFMEMORY; } *aNumBinding = 1; return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleAction::get_name(long aActionIndex, BSTR *aName) { -__try { + A11Y_TRYBLOCK_BEGIN + *aName = NULL; AccessibleWrap* acc = static_cast<AccessibleWrap*>(this); if (acc->IsDefunct()) return CO_E_OBJNOTCONNECTED; nsAutoString name; uint8_t index = static_cast<uint8_t>(aActionIndex); @@ -161,22 +162,22 @@ ia2AccessibleAction::get_name(long aActi return GetHRESULT(rv); if (name.IsEmpty()) return S_FALSE; *aName = ::SysAllocStringLen(name.get(), name.Length()); return *aName ? S_OK : E_OUTOFMEMORY; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleAction::get_localizedName(long aActionIndex, BSTR *aLocalizedName) { -__try { + A11Y_TRYBLOCK_BEGIN + *aLocalizedName = NULL; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } + return E_NOTIMPL; - return E_NOTIMPL; + A11Y_TRYBLOCK_END }
--- a/accessible/src/windows/ia2/ia2AccessibleComponent.cpp +++ b/accessible/src/windows/ia2/ia2AccessibleComponent.cpp @@ -32,17 +32,18 @@ ia2AccessibleComponent::QueryInterface(R return E_NOINTERFACE; } // IAccessibleComponent STDMETHODIMP ia2AccessibleComponent::get_locationInParent(long* aX, long* aY) { -__try { + A11Y_TRYBLOCK_BEGIN + *aX = 0; *aY = 0; AccessibleWrap* acc = static_cast<AccessibleWrap*>(this); if (acc->IsDefunct()) return CO_E_OBJNOTCONNECTED; // If the object is not on any screen the returned position is (0,0). @@ -72,50 +73,47 @@ ia2AccessibleComponent::get_locationInPa rv = acc->GetBounds(&parentx, &parenty, &width, &height); if (NS_FAILED(rv)) return GetHRESULT(rv); *aX = x - parentx; *aY = y - parenty; return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleComponent::get_foreground(IA2Color* aForeground) { -__try { + A11Y_TRYBLOCK_BEGIN + AccessibleWrap* acc = static_cast<AccessibleWrap*>(this); if (acc->IsDefunct()) return CO_E_OBJNOTCONNECTED; nsIFrame* frame = acc->GetFrame(); if (frame) *aForeground = frame->GetStyleColor()->mColor; return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleComponent::get_background(IA2Color* aBackground) { -__try { + A11Y_TRYBLOCK_BEGIN + AccessibleWrap* acc = static_cast<AccessibleWrap*>(this); if (acc->IsDefunct()) return CO_E_OBJNOTCONNECTED; nsIFrame* frame = acc->GetFrame(); if (frame) *aBackground = frame->GetStyleBackground()->mBackgroundColor; return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - - return E_FAIL; + A11Y_TRYBLOCK_END }
--- a/accessible/src/windows/ia2/ia2AccessibleEditableText.cpp +++ b/accessible/src/windows/ia2/ia2AccessibleEditableText.cpp @@ -15,115 +15,112 @@ using namespace mozilla::a11y; // IAccessibleEditableText STDMETHODIMP ia2AccessibleEditableText::copyText(long aStartOffset, long aEndOffset) { -__try { + A11Y_TRYBLOCK_BEGIN + HyperTextAccessible* textAcc = static_cast<HyperTextAccessibleWrap*>(this); if (textAcc->IsDefunct()) return CO_E_OBJNOTCONNECTED; nsresult rv = textAcc->CopyText(aStartOffset, aEndOffset); return GetHRESULT(rv); -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleEditableText::deleteText(long aStartOffset, long aEndOffset) { -__try { + A11Y_TRYBLOCK_BEGIN + HyperTextAccessible* textAcc = static_cast<HyperTextAccessibleWrap*>(this); if (textAcc->IsDefunct()) return CO_E_OBJNOTCONNECTED; nsresult rv = textAcc->DeleteText(aStartOffset, aEndOffset); return GetHRESULT(rv); -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleEditableText::insertText(long aOffset, BSTR *aText) { -__try { + A11Y_TRYBLOCK_BEGIN + HyperTextAccessible* textAcc = static_cast<HyperTextAccessibleWrap*>(this); if (textAcc->IsDefunct()) return CO_E_OBJNOTCONNECTED; uint32_t length = ::SysStringLen(*aText); nsAutoString text(*aText, length); nsresult rv = textAcc->InsertText(text, aOffset); return GetHRESULT(rv); -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleEditableText::cutText(long aStartOffset, long aEndOffset) { -__try { + A11Y_TRYBLOCK_BEGIN + HyperTextAccessible* textAcc = static_cast<HyperTextAccessibleWrap*>(this); if (textAcc->IsDefunct()) return CO_E_OBJNOTCONNECTED; nsresult rv = textAcc->CutText(aStartOffset, aEndOffset); return GetHRESULT(rv); -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleEditableText::pasteText(long aOffset) { -__try { + A11Y_TRYBLOCK_BEGIN + HyperTextAccessible* textAcc = static_cast<HyperTextAccessibleWrap*>(this); if (textAcc->IsDefunct()) return CO_E_OBJNOTCONNECTED; nsresult rv = textAcc->PasteText(aOffset); return GetHRESULT(rv); -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleEditableText::replaceText(long aStartOffset, long aEndOffset, BSTR *aText) { -__try { + A11Y_TRYBLOCK_BEGIN + HyperTextAccessible* textAcc = static_cast<HyperTextAccessibleWrap*>(this); if (textAcc->IsDefunct()) return CO_E_OBJNOTCONNECTED; nsresult rv = textAcc->DeleteText(aStartOffset, aEndOffset); if (NS_FAILED(rv)) return GetHRESULT(rv); uint32_t length = ::SysStringLen(*aText); nsAutoString text(*aText, length); rv = textAcc->InsertText(text, aStartOffset); return GetHRESULT(rv); -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleEditableText::setAttributes(long aStartOffset, long aEndOffset, BSTR *aAttributes) { -__try { - -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } return E_NOTIMPL; }
--- a/accessible/src/windows/ia2/ia2AccessibleHyperlink.cpp +++ b/accessible/src/windows/ia2/ia2AccessibleHyperlink.cpp @@ -33,17 +33,18 @@ ia2AccessibleHyperlink::QueryInterface(R return ia2AccessibleAction::QueryInterface(iid, ppv); } // IAccessibleHyperlink STDMETHODIMP ia2AccessibleHyperlink::get_anchor(long aIndex, VARIANT* aAnchor) { -__try { + A11Y_TRYBLOCK_BEGIN + VariantInit(aAnchor); Accessible* thisObj = static_cast<AccessibleWrap*>(this); if (thisObj->IsDefunct()) return CO_E_OBJNOTCONNECTED; if (aIndex < 0 || aIndex >= static_cast<long>(thisObj->AnchorCount())) return E_INVALIDARG; @@ -61,24 +62,24 @@ ia2AccessibleHyperlink::get_anchor(long if (FAILED(result)) return result; IUnknown* unknownPtr = static_cast<IUnknown*>(instancePtr); aAnchor->ppunkVal = &unknownPtr; aAnchor->vt = VT_UNKNOWN; return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleHyperlink::get_anchorTarget(long aIndex, VARIANT* aAnchorTarget) { -__try { + A11Y_TRYBLOCK_BEGIN + VariantInit(aAnchorTarget); Accessible* thisObj = static_cast<AccessibleWrap*>(this); if (thisObj->IsDefunct()) return CO_E_OBJNOTCONNECTED; if (aIndex < 0 || aIndex >= static_cast<long>(thisObj->AnchorCount())) return E_INVALIDARG; @@ -104,72 +105,71 @@ ia2AccessibleHyperlink::get_anchorTarget AppendUTF8toUTF16(prePath, stringURI); AppendUTF8toUTF16(path, stringURI); aAnchorTarget->vt = VT_BSTR; aAnchorTarget->bstrVal = ::SysAllocStringLen(stringURI.get(), stringURI.Length()); return aAnchorTarget->bstrVal ? S_OK : E_OUTOFMEMORY; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleHyperlink::get_startIndex(long* aIndex) { -__try { + A11Y_TRYBLOCK_BEGIN + *aIndex = 0; Accessible* thisObj = static_cast<AccessibleWrap*>(this); if (thisObj->IsDefunct()) return CO_E_OBJNOTCONNECTED; if (!thisObj->IsLink()) return S_FALSE; *aIndex = thisObj->StartOffset(); return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleHyperlink::get_endIndex(long* aIndex) { -__try { + A11Y_TRYBLOCK_BEGIN + *aIndex = 0; Accessible* thisObj = static_cast<AccessibleWrap*>(this); if (thisObj->IsDefunct()) return CO_E_OBJNOTCONNECTED; if (!thisObj->IsLink()) return S_FALSE; *aIndex = thisObj->EndOffset(); return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleHyperlink::get_valid(boolean* aValid) { -__try { + A11Y_TRYBLOCK_BEGIN + *aValid = false; Accessible* thisObj = static_cast<AccessibleWrap*>(this); if (thisObj->IsDefunct()) return CO_E_OBJNOTCONNECTED; if (!thisObj->IsLink()) return S_FALSE; *aValid = thisObj->IsLinkValid(); return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END }
--- a/accessible/src/windows/ia2/ia2AccessibleHypertext.cpp +++ b/accessible/src/windows/ia2/ia2AccessibleHypertext.cpp @@ -13,35 +13,36 @@ using namespace mozilla::a11y; // IAccessibleHypertext STDMETHODIMP ia2AccessibleHypertext::get_nHyperlinks(long* aHyperlinkCount) { -__try { + A11Y_TRYBLOCK_BEGIN + *aHyperlinkCount = 0; HyperTextAccessibleWrap* hyperText = static_cast<HyperTextAccessibleWrap*>(this); if (hyperText->IsDefunct()) return CO_E_OBJNOTCONNECTED; *aHyperlinkCount = hyperText->GetLinkCount(); return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleHypertext::get_hyperlink(long aLinkIndex, IAccessibleHyperlink** aHyperlink) { -__try { + A11Y_TRYBLOCK_BEGIN + *aHyperlink = NULL; HyperTextAccessibleWrap* hyperText = static_cast<HyperTextAccessibleWrap*>(this); if (hyperText->IsDefunct()) return CO_E_OBJNOTCONNECTED; Accessible* hyperLink = hyperText->GetLinkAt(aLinkIndex); nsCOMPtr<nsIWinAccessNode> winAccessNode(do_QueryObject(hyperLink)); @@ -52,29 +53,28 @@ ia2AccessibleHypertext::get_hyperlink(lo nsresult rv = winAccessNode->QueryNativeInterface(IID_IAccessibleHyperlink, &instancePtr); if (NS_FAILED(rv)) return E_FAIL; *aHyperlink = static_cast<IAccessibleHyperlink*>(instancePtr); return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleHypertext::get_hyperlinkIndex(long aCharIndex, long* aHyperlinkIndex) { -__try { + A11Y_TRYBLOCK_BEGIN + *aHyperlinkIndex = 0; HyperTextAccessibleWrap* hyperAcc = static_cast<HyperTextAccessibleWrap*>(this); if (hyperAcc->IsDefunct()) return CO_E_OBJNOTCONNECTED; *aHyperlinkIndex = hyperAcc->GetLinkIndexAtOffset(aCharIndex); return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END }
--- a/accessible/src/windows/ia2/ia2AccessibleImage.cpp +++ b/accessible/src/windows/ia2/ia2AccessibleImage.cpp @@ -37,17 +37,18 @@ ia2AccessibleImage::QueryInterface(REFII return E_NOINTERFACE; } // IAccessibleImage STDMETHODIMP ia2AccessibleImage::get_description(BSTR* aDescription) { -__try { + A11Y_TRYBLOCK_BEGIN + *aDescription = NULL; ImageAccessibleWrap* acc = static_cast<ImageAccessibleWrap*>(this); if (acc->IsDefunct()) return CO_E_OBJNOTCONNECTED; nsAutoString description; nsresult rv = acc->GetName(description); @@ -55,26 +56,26 @@ ia2AccessibleImage::get_description(BSTR return GetHRESULT(rv); if (description.IsEmpty()) return S_FALSE; *aDescription = ::SysAllocStringLen(description.get(), description.Length()); return *aDescription ? S_OK : E_OUTOFMEMORY; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleImage::get_imagePosition(enum IA2CoordinateType aCoordType, long* aX, long* aY) { -__try { + A11Y_TRYBLOCK_BEGIN + *aX = 0; *aY = 0; ImageAccessibleWrap* imageAcc = static_cast<ImageAccessibleWrap*>(this); if (imageAcc->IsDefunct()) return CO_E_OBJNOTCONNECTED; uint32_t geckoCoordType = (aCoordType == IA2_COORDTYPE_SCREEN_RELATIVE) ? @@ -85,37 +86,35 @@ ia2AccessibleImage::get_imagePosition(en nsresult rv = imageAcc->GetImagePosition(geckoCoordType, &x, &y); if (NS_FAILED(rv)) return GetHRESULT(rv); *aX = x; *aY = y; return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleImage::get_imageSize(long* aHeight, long* aWidth) { -__try { + A11Y_TRYBLOCK_BEGIN + *aHeight = 0; *aWidth = 0; ImageAccessibleWrap* imageAcc = static_cast<ImageAccessibleWrap*>(this); if (imageAcc->IsDefunct()) return CO_E_OBJNOTCONNECTED; int32_t width = 0, height = 0; nsresult rv = imageAcc->GetImageSize(&width, &height); if (NS_FAILED(rv)) return GetHRESULT(rv); *aHeight = width; *aWidth = height; return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END }
--- a/accessible/src/windows/ia2/ia2AccessibleRelation.cpp +++ b/accessible/src/windows/ia2/ia2AccessibleRelation.cpp @@ -60,17 +60,18 @@ ia2AccessibleRelation::Release() return references; } // IAccessibleRelation STDMETHODIMP ia2AccessibleRelation::get_relationType(BSTR *aRelationType) { -__try { + A11Y_TRYBLOCK_BEGIN + if (!aRelationType) return E_INVALIDARG; *aRelationType = NULL; switch (mType) { case nsIAccessibleRelation::RELATION_CONTROLLED_BY: *aRelationType = ::SysAllocString(IA2_RELATION_CONTROLLED_BY); @@ -118,75 +119,76 @@ ia2AccessibleRelation::get_relationType( *aRelationType = ::SysAllocString(IA2_RELATION_SUBWINDOW_OF); break; default: return E_FAIL; } return *aRelationType ? S_OK : E_OUTOFMEMORY; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleRelation::get_localizedRelationType(BSTR *aLocalizedRelationType) { -__try { + A11Y_TRYBLOCK_BEGIN + if (!aLocalizedRelationType) return E_INVALIDARG; *aLocalizedRelationType = NULL; + return E_NOTIMPL; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_NOTIMPL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleRelation::get_nTargets(long *aNTargets) { -__try { + A11Y_TRYBLOCK_BEGIN + if (!aNTargets) return E_INVALIDARG; *aNTargets = mTargets.Length(); return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleRelation::get_target(long aTargetIndex, IUnknown **aTarget) { -__try { + A11Y_TRYBLOCK_BEGIN + if (aTargetIndex < 0 || aTargetIndex >= mTargets.Length() || !aTarget) return E_INVALIDARG; mTargets[aTargetIndex]->QueryNativeInterface(IID_IUnknown, (void**) aTarget); return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleRelation::get_targets(long aMaxTargets, IUnknown **aTargets, long *aNTargets) { -__try { + A11Y_TRYBLOCK_BEGIN + if (!aNTargets || !aTargets) return E_INVALIDARG; *aNTargets = 0; uint32_t maxTargets = mTargets.Length(); if (maxTargets > aMaxTargets) maxTargets = aMaxTargets; for (uint32_t idx = 0; idx < maxTargets; idx++) get_target(idx, aTargets + idx); *aNTargets = maxTargets; return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END }
--- a/accessible/src/windows/ia2/ia2AccessibleTable.cpp +++ b/accessible/src/windows/ia2/ia2AccessibleTable.cpp @@ -51,17 +51,18 @@ ia2AccessibleTable::QueryInterface(REFII //////////////////////////////////////////////////////////////////////////////// // IAccessibleTable STDMETHODIMP ia2AccessibleTable::get_accessibleAt(long aRow, long aColumn, IUnknown **aAccessible) { -__try { + A11Y_TRYBLOCK_BEGIN + *aAccessible = NULL; nsCOMPtr<nsIAccessibleTable> tableAcc(do_QueryObject(this)); NS_ASSERTION(tableAcc, CANT_QUERY_ASSERTION_MSG); if (!tableAcc) return E_FAIL; nsCOMPtr<nsIAccessible> cell; @@ -76,24 +77,24 @@ ia2AccessibleTable::get_accessibleAt(lon void *instancePtr = NULL; rv = winAccessNode->QueryNativeInterface(IID_IAccessible2, &instancePtr); if (NS_FAILED(rv)) return E_FAIL; *aAccessible = static_cast<IUnknown*>(instancePtr); return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleTable::get_caption(IUnknown** aAccessible) { -__try { + A11Y_TRYBLOCK_BEGIN + *aAccessible = NULL; nsCOMPtr<nsIAccessibleTable> tableAcc(do_QueryObject(this)); NS_ASSERTION(tableAcc, CANT_QUERY_ASSERTION_MSG); if (!tableAcc) return E_FAIL; nsCOMPtr<nsIAccessible> caption; @@ -111,49 +112,48 @@ ia2AccessibleTable::get_caption(IUnknown void *instancePtr = NULL; rv = winAccessNode->QueryNativeInterface(IID_IAccessible2, &instancePtr); if (NS_FAILED(rv)) return E_FAIL; *aAccessible = static_cast<IUnknown*>(instancePtr); return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleTable::get_childIndex(long aRowIndex, long aColumnIndex, long* aChildIndex) { -__try { + A11Y_TRYBLOCK_BEGIN + *aChildIndex = 0; nsCOMPtr<nsIAccessibleTable> tableAcc(do_QueryObject(this)); NS_ASSERTION(tableAcc, CANT_QUERY_ASSERTION_MSG); if (!tableAcc) return E_FAIL; int32_t childIndex = 0; nsresult rv = tableAcc->GetCellIndexAt(aRowIndex, aColumnIndex, &childIndex); if (NS_FAILED(rv)) return GetHRESULT(rv); *aChildIndex = childIndex; return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), - GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleTable::get_columnDescription(long aColumn, BSTR* aDescription) { -__try { + A11Y_TRYBLOCK_BEGIN + *aDescription = NULL; nsCOMPtr<nsIAccessibleTable> tableAcc(do_QueryObject(this)); NS_ASSERTION(tableAcc, CANT_QUERY_ASSERTION_MSG); if (!tableAcc) return E_FAIL; nsAutoString descr; @@ -162,202 +162,199 @@ ia2AccessibleTable::get_columnDescriptio return GetHRESULT(rv); if (descr.IsEmpty()) return S_FALSE; *aDescription = ::SysAllocStringLen(descr.get(), descr.Length()); return *aDescription ? S_OK : E_OUTOFMEMORY; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleTable::get_columnExtentAt(long aRow, long aColumn, long* nColumnsSpanned) { -__try { + A11Y_TRYBLOCK_BEGIN + *nColumnsSpanned = 0; nsCOMPtr<nsIAccessibleTable> tableAcc(do_QueryObject(this)); NS_ASSERTION(tableAcc, CANT_QUERY_ASSERTION_MSG); if (!tableAcc) return E_FAIL; int32_t columnsSpanned = 0; nsresult rv = tableAcc->GetColumnExtentAt(aRow, aColumn, &columnsSpanned); if (NS_FAILED(rv)) return GetHRESULT(rv); *nColumnsSpanned = columnsSpanned; return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleTable::get_columnHeader(IAccessibleTable** aAccessibleTable, long* aStartingRowIndex) { -__try { + A11Y_TRYBLOCK_BEGIN + *aAccessibleTable = NULL; *aStartingRowIndex = -1; + return E_NOTIMPL; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), - GetExceptionInformation())) {} - return E_NOTIMPL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleTable::get_columnIndex(long aChildIndex, long* aColumnIndex) { -__try { + A11Y_TRYBLOCK_BEGIN + *aColumnIndex = 0; nsCOMPtr<nsIAccessibleTable> tableAcc(do_QueryObject(this)); NS_ASSERTION(tableAcc, CANT_QUERY_ASSERTION_MSG); if (!tableAcc) return E_FAIL; int32_t columnIndex = 0; nsresult rv = tableAcc->GetColumnIndexAt(aChildIndex, &columnIndex); if (NS_FAILED(rv)) return GetHRESULT(rv); *aColumnIndex = columnIndex; return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), - GetExceptionInformation())) {} - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleTable::get_nColumns(long* aColumnCount) { -__try { + A11Y_TRYBLOCK_BEGIN + *aColumnCount = 0; nsCOMPtr<nsIAccessibleTable> tableAcc(do_QueryObject(this)); NS_ASSERTION(tableAcc, CANT_QUERY_ASSERTION_MSG); if (!tableAcc) return E_FAIL; int32_t columnCount = 0; nsresult rv = tableAcc->GetColumnCount(&columnCount); if (NS_FAILED(rv)) return GetHRESULT(rv); *aColumnCount = columnCount; return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), - GetExceptionInformation())) {} - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleTable::get_nRows(long* aRowCount) { -__try { + A11Y_TRYBLOCK_BEGIN + *aRowCount = 0; nsCOMPtr<nsIAccessibleTable> tableAcc(do_QueryObject(this)); NS_ASSERTION(tableAcc, CANT_QUERY_ASSERTION_MSG); if (!tableAcc) return E_FAIL; int32_t rowCount = 0; nsresult rv = tableAcc->GetRowCount(&rowCount); if (NS_FAILED(rv)) return GetHRESULT(rv); *aRowCount = rowCount; return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), - GetExceptionInformation())) {} - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleTable::get_nSelectedChildren(long* aChildCount) { -__try { + A11Y_TRYBLOCK_BEGIN + *aChildCount = 0; nsCOMPtr<nsIAccessibleTable> tableAcc(do_QueryObject(this)); NS_ASSERTION(tableAcc, CANT_QUERY_ASSERTION_MSG); if (!tableAcc) return E_FAIL; uint32_t count = 0; nsresult rv = tableAcc->GetSelectedCellCount(&count); if (NS_FAILED(rv)) return GetHRESULT(rv); *aChildCount = count; return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleTable::get_nSelectedColumns(long* aColumnCount) { -__try { + A11Y_TRYBLOCK_BEGIN + *aColumnCount = 0; nsCOMPtr<nsIAccessibleTable> tableAcc(do_QueryObject(this)); NS_ASSERTION(tableAcc, CANT_QUERY_ASSERTION_MSG); if (!tableAcc) return E_FAIL; uint32_t count = 0; nsresult rv = tableAcc->GetSelectedColumnCount(&count); if (NS_FAILED(rv)) return GetHRESULT(rv); *aColumnCount = count; return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleTable::get_nSelectedRows(long* aRowCount) { -__try { + A11Y_TRYBLOCK_BEGIN + *aRowCount = 0; nsCOMPtr<nsIAccessibleTable> tableAcc(do_QueryObject(this)); NS_ASSERTION(tableAcc, CANT_QUERY_ASSERTION_MSG); if (!tableAcc) return E_FAIL; uint32_t count = 0; nsresult rv = tableAcc->GetSelectedRowCount(&count); if (NS_FAILED(rv)) return GetHRESULT(rv); *aRowCount = count; return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleTable::get_rowDescription(long aRow, BSTR* aDescription) { -__try { + A11Y_TRYBLOCK_BEGIN + *aDescription = NULL; nsCOMPtr<nsIAccessibleTable> tableAcc(do_QueryObject(this)); NS_ASSERTION(tableAcc, CANT_QUERY_ASSERTION_MSG); if (!tableAcc) return E_FAIL; nsAutoString descr; @@ -366,273 +363,268 @@ ia2AccessibleTable::get_rowDescription(l return GetHRESULT(rv); if (descr.IsEmpty()) return S_FALSE; *aDescription = ::SysAllocStringLen(descr.get(), descr.Length()); return *aDescription ? S_OK : E_OUTOFMEMORY; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleTable::get_rowExtentAt(long aRow, long aColumn, long* aNRowsSpanned) { -__try { + A11Y_TRYBLOCK_BEGIN + *aNRowsSpanned = 0; nsCOMPtr<nsIAccessibleTable> tableAcc(do_QueryObject(this)); NS_ASSERTION(tableAcc, CANT_QUERY_ASSERTION_MSG); if (!tableAcc) return E_FAIL; int32_t rowsSpanned = 0; nsresult rv = tableAcc->GetRowExtentAt(aRow, aColumn, &rowsSpanned); if (NS_FAILED(rv)) return GetHRESULT(rv); *aNRowsSpanned = rowsSpanned; return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleTable::get_rowHeader(IAccessibleTable** aAccessibleTable, long* aStartingColumnIndex) { -__try { + A11Y_TRYBLOCK_BEGIN + *aAccessibleTable = NULL; *aStartingColumnIndex = -1; + return E_NOTIMPL; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), - GetExceptionInformation())) {} - return E_NOTIMPL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleTable::get_rowIndex(long aChildIndex, long* aRowIndex) { -__try { + A11Y_TRYBLOCK_BEGIN + *aRowIndex = 0; nsCOMPtr<nsIAccessibleTable> tableAcc(do_QueryObject(this)); NS_ASSERTION(tableAcc, CANT_QUERY_ASSERTION_MSG); if (!tableAcc) return E_FAIL; int32_t rowIndex = 0; nsresult rv = tableAcc->GetRowIndexAt(aChildIndex, &rowIndex); if (NS_FAILED(rv)) return GetHRESULT(rv); *aRowIndex = rowIndex; return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), - GetExceptionInformation())) {} - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleTable::get_selectedChildren(long aMaxChildren, long** aChildren, long* aNChildren) { -__try { + A11Y_TRYBLOCK_BEGIN + return GetSelectedItems(aChildren, aNChildren, ITEMSTYPE_CELLS); -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), - GetExceptionInformation())) {} - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleTable::get_selectedColumns(long aMaxColumns, long** aColumns, long* aNColumns) { -__try { + A11Y_TRYBLOCK_BEGIN + return GetSelectedItems(aColumns, aNColumns, ITEMSTYPE_COLUMNS); -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), - GetExceptionInformation())) {} - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleTable::get_selectedRows(long aMaxRows, long** aRows, long* aNRows) { -__try { + A11Y_TRYBLOCK_BEGIN + return GetSelectedItems(aRows, aNRows, ITEMSTYPE_ROWS); -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), - GetExceptionInformation())) {} - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleTable::get_summary(IUnknown** aAccessible) { -__try { - *aAccessible = NULL; + A11Y_TRYBLOCK_BEGIN // Neither html:table nor xul:tree nor ARIA grid/tree have an ability to // link an accessible object to specify a summary. There is closes method // in nsIAccessibleTable::summary to get a summary as a string which is not // mapped directly to IAccessible2. -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } + *aAccessible = NULL; return S_FALSE; + + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleTable::get_isColumnSelected(long aColumn, boolean* aIsSelected) { -__try { + A11Y_TRYBLOCK_BEGIN + *aIsSelected = false; nsCOMPtr<nsIAccessibleTable> tableAcc(do_QueryObject(this)); NS_ASSERTION(tableAcc, CANT_QUERY_ASSERTION_MSG); if (!tableAcc) return E_FAIL; bool isSelected = false; nsresult rv = tableAcc->IsColumnSelected(aColumn, &isSelected); if (NS_FAILED(rv)) return GetHRESULT(rv); *aIsSelected = isSelected; return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleTable::get_isRowSelected(long aRow, boolean* aIsSelected) { -__try { - *aIsSelected = false; + A11Y_TRYBLOCK_BEGIN nsCOMPtr<nsIAccessibleTable> tableAcc(do_QueryObject(this)); NS_ASSERTION(tableAcc, CANT_QUERY_ASSERTION_MSG); if (!tableAcc) return E_FAIL; bool isSelected = false; nsresult rv = tableAcc->IsRowSelected(aRow, &isSelected); if (NS_FAILED(rv)) return GetHRESULT(rv); *aIsSelected = isSelected; return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleTable::get_isSelected(long aRow, long aColumn, boolean* aIsSelected) { -__try { + A11Y_TRYBLOCK_BEGIN + *aIsSelected = false; nsCOMPtr<nsIAccessibleTable> tableAcc(do_QueryObject(this)); NS_ASSERTION(tableAcc, CANT_QUERY_ASSERTION_MSG); if (!tableAcc) return E_FAIL; bool isSelected = false; nsresult rv = tableAcc->IsCellSelected(aRow, aColumn, &isSelected); if (NS_FAILED(rv)) return GetHRESULT(rv); *aIsSelected = isSelected; return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleTable::selectRow(long aRow) { -__try { + A11Y_TRYBLOCK_BEGIN + nsCOMPtr<nsIAccessibleTable> tableAcc(do_QueryObject(this)); NS_ASSERTION(tableAcc, CANT_QUERY_ASSERTION_MSG); if (!tableAcc) return E_FAIL; nsresult rv = tableAcc->SelectRow(aRow); return GetHRESULT(rv); -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleTable::selectColumn(long aColumn) { -__try { + A11Y_TRYBLOCK_BEGIN + nsCOMPtr<nsIAccessibleTable> tableAcc(do_QueryObject(this)); NS_ASSERTION(tableAcc, CANT_QUERY_ASSERTION_MSG); if (!tableAcc) return E_FAIL; nsresult rv = tableAcc->SelectColumn(aColumn); return GetHRESULT(rv); -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleTable::unselectRow(long aRow) { -__try { + A11Y_TRYBLOCK_BEGIN + nsCOMPtr<nsIAccessibleTable> tableAcc(do_QueryObject(this)); NS_ASSERTION(tableAcc, CANT_QUERY_ASSERTION_MSG); if (!tableAcc) return E_FAIL; nsresult rv = tableAcc->UnselectRow(aRow); return GetHRESULT(rv); -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleTable::unselectColumn(long aColumn) { -__try { + A11Y_TRYBLOCK_BEGIN + nsCOMPtr<nsIAccessibleTable> tableAcc(do_QueryObject(this)); NS_ASSERTION(tableAcc, CANT_QUERY_ASSERTION_MSG); if (!tableAcc) return E_FAIL; nsresult rv = tableAcc->UnselectColumn(aColumn); return GetHRESULT(rv); -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleTable::get_rowColumnExtentsAtIndex(long aIndex, long* aRow, long* aColumn, long* aRowExtents, long* aColumnExtents, boolean* aIsSelected) { -__try { + A11Y_TRYBLOCK_BEGIN + *aRow = 0; *aColumn = 0; *aRowExtents = 0; *aColumnExtents = 0; *aIsSelected = false; nsCOMPtr<nsIAccessibleTable> tableAcc(do_QueryObject(this)); NS_ASSERTION(tableAcc, CANT_QUERY_ASSERTION_MSG); @@ -661,26 +653,22 @@ ia2AccessibleTable::get_rowColumnExtents *aRow = rowIdx; *aColumn = columnIdx; *aRowExtents = rowExtents; *aColumnExtents = columnExtents; *aIsSelected = isSelected; return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleTable::get_modelChange(IA2TableModelChange* aModelChange) { -__try { - -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } return E_NOTIMPL; } //////////////////////////////////////////////////////////////////////////////// // IAccessibleTable2 STDMETHODIMP ia2AccessibleTable::get_cellAt(long aRow, long aColumn, IUnknown** aCell) @@ -692,55 +680,51 @@ STDMETHODIMP ia2AccessibleTable::get_nSelectedCells(long* aCellCount) { return get_nSelectedChildren(aCellCount); } STDMETHODIMP ia2AccessibleTable::get_selectedCells(IUnknown*** aCells, long* aNSelectedCells) { -__try { + A11Y_TRYBLOCK_BEGIN + nsCOMPtr<nsIAccessibleTable> tableAcc(do_QueryObject(this)); NS_ASSERTION(tableAcc, CANT_QUERY_ASSERTION_MSG); if (!tableAcc) return E_FAIL; nsCOMPtr<nsIArray> geckoCells; nsresult rv = tableAcc->GetSelectedCells(getter_AddRefs(geckoCells)); if (NS_FAILED(rv)) return GetHRESULT(rv); return nsWinUtils::ConvertToIA2Array(geckoCells, aCells, aNSelectedCells); -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), - GetExceptionInformation())) {} - - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleTable::get_selectedColumns(long** aColumns, long* aNColumns) { -__try { + A11Y_TRYBLOCK_BEGIN + return GetSelectedItems(aColumns, aNColumns, ITEMSTYPE_COLUMNS); -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), - GetExceptionInformation())) {} - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleTable::get_selectedRows(long** aRows, long* aNRows) { -__try { + A11Y_TRYBLOCK_BEGIN + return GetSelectedItems(aRows, aNRows, ITEMSTYPE_ROWS); -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), - GetExceptionInformation())) {} - return E_FAIL; + A11Y_TRYBLOCK_END } //////////////////////////////////////////////////////////////////////////////// // ia2AccessibleTable public HRESULT ia2AccessibleTable::GetSelectedItems(long** aItems, long* aItemsCount, eItemsType aType)
--- a/accessible/src/windows/ia2/ia2AccessibleTableCell.cpp +++ b/accessible/src/windows/ia2/ia2AccessibleTableCell.cpp @@ -42,17 +42,18 @@ ia2AccessibleTableCell::QueryInterface(R } //////////////////////////////////////////////////////////////////////////////// // IAccessibleTableCell STDMETHODIMP ia2AccessibleTableCell::get_table(IUnknown** aTable) { -__try { + A11Y_TRYBLOCK_BEGIN + nsCOMPtr<nsIAccessibleTableCell> tableCell(do_QueryObject(this)); NS_ASSERTION(tableCell, TABLECELL_INTERFACE_UNSUPPORTED_MSG); if (!tableCell) return E_FAIL; nsCOMPtr<nsIAccessibleTable> geckoTable; nsresult rv = tableCell->GetTable(getter_AddRefs(geckoTable)); if (NS_FAILED(rv)) @@ -65,181 +66,167 @@ ia2AccessibleTableCell::get_table(IUnkno void *instancePtr = NULL; rv = winAccessNode->QueryNativeInterface(IID_IUnknown, &instancePtr); if (NS_FAILED(rv)) return GetHRESULT(rv); *aTable = static_cast<IUnknown*>(instancePtr); return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), - GetExceptionInformation())) {} - - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleTableCell::get_columnExtent(long* aNColumnsSpanned) { -__try { + A11Y_TRYBLOCK_BEGIN + *aNColumnsSpanned = 0; nsCOMPtr<nsIAccessibleTableCell> tableCell(do_QueryObject(this)); NS_ASSERTION(tableCell, TABLECELL_INTERFACE_UNSUPPORTED_MSG); if (!tableCell) return E_FAIL; int32_t columnsSpanned = 0; nsresult rv = tableCell->GetColumnExtent(&columnsSpanned); if (NS_SUCCEEDED(rv)) { *aNColumnsSpanned = columnsSpanned; return S_OK; } return GetHRESULT(rv); -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), - GetExceptionInformation())) {} - - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleTableCell::get_columnHeaderCells(IUnknown*** aCellAccessibles, long* aNColumnHeaderCells) { -__try { + A11Y_TRYBLOCK_BEGIN + nsCOMPtr<nsIAccessibleTableCell> tableCell(do_QueryObject(this)); NS_ASSERTION(tableCell, TABLECELL_INTERFACE_UNSUPPORTED_MSG); if (!tableCell) return E_FAIL; nsCOMPtr<nsIArray> headerCells; nsresult rv = tableCell->GetColumnHeaderCells(getter_AddRefs(headerCells)); if (NS_FAILED(rv)) return GetHRESULT(rv); return nsWinUtils::ConvertToIA2Array(headerCells, aCellAccessibles, aNColumnHeaderCells); -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), - GetExceptionInformation())) {} - - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleTableCell::get_columnIndex(long* aColumnIndex) { -__try { + A11Y_TRYBLOCK_BEGIN + *aColumnIndex = -1; nsCOMPtr<nsIAccessibleTableCell> tableCell(do_QueryObject(this)); NS_ASSERTION(tableCell, TABLECELL_INTERFACE_UNSUPPORTED_MSG); if (!tableCell) return E_FAIL; int32_t colIdx = -1; nsresult rv = tableCell->GetColumnIndex(&colIdx); if (NS_SUCCEEDED(rv)) { *aColumnIndex = colIdx; return S_OK; } return GetHRESULT(rv); -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), - GetExceptionInformation())) {} - - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleTableCell::get_rowExtent(long* aNRowsSpanned) { -__try { + A11Y_TRYBLOCK_BEGIN + *aNRowsSpanned = 0; nsCOMPtr<nsIAccessibleTableCell> tableCell(do_QueryObject(this)); NS_ASSERTION(tableCell, TABLECELL_INTERFACE_UNSUPPORTED_MSG); if (!tableCell) return E_FAIL; int32_t rowsSpanned = 0; nsresult rv = tableCell->GetRowExtent(&rowsSpanned); if (NS_SUCCEEDED(rv)) { *aNRowsSpanned = rowsSpanned; return S_OK; } return GetHRESULT(rv); -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), - GetExceptionInformation())) {} - - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleTableCell::get_rowHeaderCells(IUnknown*** aCellAccessibles, long* aNRowHeaderCells) { -__try { + A11Y_TRYBLOCK_BEGIN + nsCOMPtr<nsIAccessibleTableCell> tableCell(do_QueryObject(this)); NS_ASSERTION(tableCell, TABLECELL_INTERFACE_UNSUPPORTED_MSG); if (!tableCell) return E_FAIL; nsCOMPtr<nsIArray> headerCells; nsresult rv = tableCell->GetRowHeaderCells(getter_AddRefs(headerCells)); if (NS_FAILED(rv)) return GetHRESULT(rv); return nsWinUtils::ConvertToIA2Array(headerCells, aCellAccessibles, aNRowHeaderCells); -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), - GetExceptionInformation())) {} - - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleTableCell::get_rowIndex(long* aRowIndex) { -__try { + A11Y_TRYBLOCK_BEGIN + *aRowIndex = -1; nsCOMPtr<nsIAccessibleTableCell> tableCell(do_QueryObject(this)); NS_ASSERTION(tableCell, TABLECELL_INTERFACE_UNSUPPORTED_MSG); if (!tableCell) return E_FAIL; int32_t rowIdx = -1; nsresult rv = tableCell->GetRowIndex(&rowIdx); if (NS_SUCCEEDED(rv)) { *aRowIndex = rowIdx; return S_OK; } return GetHRESULT(rv); -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), - GetExceptionInformation())) {} - - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleTableCell::get_rowColumnExtents(long* aRow, long* aColumn, long* aRowExtents, long* aColumnExtents, boolean* aIsSelected) { -__try { + A11Y_TRYBLOCK_BEGIN + *aRow = 0; *aRow = 0; *aRow = 0; *aColumnExtents = 0; *aIsSelected = false; nsCOMPtr<nsIAccessibleTableCell> tableCell(do_QueryObject(this)); NS_ASSERTION(tableCell, TABLECELL_INTERFACE_UNSUPPORTED_MSG); @@ -273,38 +260,34 @@ ia2AccessibleTableCell::get_rowColumnExt *aRow = rowIdx; *aColumn = columnIdx; *aRowExtents = spannedRows; *aColumnExtents = spannedColumns; *aIsSelected = isSel; return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), - GetExceptionInformation())) {} - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleTableCell::get_isSelected(boolean* aIsSelected) { -__try { + A11Y_TRYBLOCK_BEGIN + *aIsSelected = false; nsCOMPtr<nsIAccessibleTableCell> tableCell(do_QueryObject(this)); NS_ASSERTION(tableCell, TABLECELL_INTERFACE_UNSUPPORTED_MSG); if (!tableCell) return E_FAIL; bool isSel = false; nsresult rv = tableCell->IsSelected(&isSel); if (NS_SUCCEEDED(rv)) { *aIsSelected = isSel; return S_OK; } return GetHRESULT(rv); -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), - GetExceptionInformation())) {} - - return E_FAIL; + A11Y_TRYBLOCK_END }
--- a/accessible/src/windows/ia2/ia2AccessibleText.cpp +++ b/accessible/src/windows/ia2/ia2AccessibleText.cpp @@ -16,33 +16,34 @@ using namespace mozilla::a11y; // IAccessibleText STDMETHODIMP ia2AccessibleText::addSelection(long aStartOffset, long aEndOffset) { -__try { + A11Y_TRYBLOCK_BEGIN + HyperTextAccessible* textAcc = static_cast<HyperTextAccessibleWrap*>(this); if (textAcc->IsDefunct()) return CO_E_OBJNOTCONNECTED; nsresult rv = textAcc->AddSelection(aStartOffset, aEndOffset); return GetHRESULT(rv); -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleText::get_attributes(long aOffset, long *aStartOffset, long *aEndOffset, BSTR *aTextAttributes) { -__try { + A11Y_TRYBLOCK_BEGIN + if (!aStartOffset || !aEndOffset || !aTextAttributes) return E_INVALIDARG; *aStartOffset = 0; *aEndOffset = 0; *aTextAttributes = NULL; HyperTextAccessible* textAcc = static_cast<HyperTextAccessibleWrap*>(this); @@ -62,49 +63,49 @@ ia2AccessibleText::get_attributes(long a if (FAILED(hr)) return hr; *aStartOffset = startOffset; *aEndOffset = endOffset; return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleText::get_caretOffset(long *aOffset) { -__try { + A11Y_TRYBLOCK_BEGIN + *aOffset = -1; HyperTextAccessible* textAcc = static_cast<HyperTextAccessibleWrap*>(this); if (textAcc->IsDefunct()) return CO_E_OBJNOTCONNECTED; int32_t offset = 0; nsresult rv = textAcc->GetCaretOffset(&offset); if (NS_FAILED(rv)) return GetHRESULT(rv); *aOffset = offset; return offset != -1 ? S_OK : S_FALSE; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleText::get_characterExtents(long aOffset, enum IA2CoordinateType aCoordType, long *aX, long *aY, long *aWidth, long *aHeight) { -__try { + A11Y_TRYBLOCK_BEGIN + *aX = 0; *aY = 0; *aWidth = 0; *aHeight = 0; HyperTextAccessible* textAcc = static_cast<HyperTextAccessibleWrap*>(this); if (textAcc->IsDefunct()) return CO_E_OBJNOTCONNECTED; @@ -120,48 +121,48 @@ ia2AccessibleText::get_characterExtents( return GetHRESULT(rv); *aX = x; *aY = y; *aWidth = width; *aHeight = height; return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleText::get_nSelections(long *aNSelections) { -__try { + A11Y_TRYBLOCK_BEGIN + *aNSelections = 0; HyperTextAccessible* textAcc = static_cast<HyperTextAccessibleWrap*>(this); if (textAcc->IsDefunct()) return CO_E_OBJNOTCONNECTED; int32_t selCount = 0; nsresult rv = textAcc->GetSelectionCount(&selCount); if (NS_FAILED(rv)) return GetHRESULT(rv); *aNSelections = selCount; return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleText::get_offsetAtPoint(long aX, long aY, enum IA2CoordinateType aCoordType, long *aOffset) { -__try { + A11Y_TRYBLOCK_BEGIN + *aOffset = 0; HyperTextAccessible* textAcc = static_cast<HyperTextAccessibleWrap*>(this); if (textAcc->IsDefunct()) return CO_E_OBJNOTCONNECTED; uint32_t geckoCoordType = (aCoordType == IA2_COORDTYPE_SCREEN_RELATIVE) ? nsIAccessibleCoordinateType::COORDTYPE_SCREEN_RELATIVE : @@ -170,25 +171,25 @@ ia2AccessibleText::get_offsetAtPoint(lon int32_t offset = 0; nsresult rv = textAcc->GetOffsetAtPoint(aX, aY, geckoCoordType, &offset); if (NS_FAILED(rv)) return GetHRESULT(rv); *aOffset = offset; return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleText::get_selection(long aSelectionIndex, long *aStartOffset, long *aEndOffset) { -__try { + A11Y_TRYBLOCK_BEGIN + *aStartOffset = 0; *aEndOffset = 0; HyperTextAccessible* textAcc = static_cast<HyperTextAccessibleWrap*>(this); if (textAcc->IsDefunct()) return CO_E_OBJNOTCONNECTED; int32_t startOffset = 0, endOffset = 0; @@ -196,24 +197,24 @@ ia2AccessibleText::get_selection(long aS &startOffset, &endOffset); if (NS_FAILED(rv)) return GetHRESULT(rv); *aStartOffset = startOffset; *aEndOffset = endOffset; return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleText::get_text(long aStartOffset, long aEndOffset, BSTR *aText) { -__try { + A11Y_TRYBLOCK_BEGIN + *aText = NULL; HyperTextAccessible* textAcc = static_cast<HyperTextAccessibleWrap*>(this); if (textAcc->IsDefunct()) return CO_E_OBJNOTCONNECTED; nsAutoString text; nsresult rv = textAcc->GetText(aStartOffset, aEndOffset, text); @@ -221,27 +222,27 @@ ia2AccessibleText::get_text(long aStartO return GetHRESULT(rv); if (text.IsEmpty()) return S_FALSE; *aText = ::SysAllocStringLen(text.get(), text.Length()); return *aText ? S_OK : E_OUTOFMEMORY; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleText::get_textBeforeOffset(long aOffset, enum IA2TextBoundaryType aBoundaryType, long *aStartOffset, long *aEndOffset, BSTR *aText) { -__try { + A11Y_TRYBLOCK_BEGIN + *aStartOffset = 0; *aEndOffset = 0; *aText = NULL; HyperTextAccessible* textAcc = static_cast<HyperTextAccessibleWrap*>(this); if (textAcc->IsDefunct()) return CO_E_OBJNOTCONNECTED; @@ -268,27 +269,27 @@ ia2AccessibleText::get_textBeforeOffset( *aEndOffset = endOffset; if (text.IsEmpty()) return S_FALSE; *aText = ::SysAllocStringLen(text.get(), text.Length()); return *aText ? S_OK : E_OUTOFMEMORY; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleText::get_textAfterOffset(long aOffset, enum IA2TextBoundaryType aBoundaryType, long *aStartOffset, long *aEndOffset, BSTR *aText) { -__try { + A11Y_TRYBLOCK_BEGIN + *aStartOffset = 0; *aEndOffset = 0; *aText = NULL; HyperTextAccessible* textAcc = static_cast<HyperTextAccessibleWrap*>(this); if (textAcc->IsDefunct()) return CO_E_OBJNOTCONNECTED; @@ -315,27 +316,27 @@ ia2AccessibleText::get_textAfterOffset(l *aEndOffset = endOffset; if (text.IsEmpty()) return S_FALSE; *aText = ::SysAllocStringLen(text.get(), text.Length()); return *aText ? S_OK : E_OUTOFMEMORY; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleText::get_textAtOffset(long aOffset, enum IA2TextBoundaryType aBoundaryType, long *aStartOffset, long *aEndOffset, BSTR *aText) { -__try { + A11Y_TRYBLOCK_BEGIN + *aStartOffset = 0; *aEndOffset = 0; *aText = NULL; HyperTextAccessible* textAcc = static_cast<HyperTextAccessibleWrap*>(this); if (textAcc->IsDefunct()) return CO_E_OBJNOTCONNECTED; @@ -362,140 +363,139 @@ ia2AccessibleText::get_textAtOffset(long *aEndOffset = endOffset; if (text.IsEmpty()) return S_FALSE; *aText = ::SysAllocStringLen(text.get(), text.Length()); return *aText ? S_OK : E_OUTOFMEMORY; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleText::removeSelection(long aSelectionIndex) { -__try { + A11Y_TRYBLOCK_BEGIN + HyperTextAccessible* textAcc = static_cast<HyperTextAccessibleWrap*>(this); if (textAcc->IsDefunct()) return CO_E_OBJNOTCONNECTED; nsresult rv = textAcc->RemoveSelection(aSelectionIndex); return GetHRESULT(rv); -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleText::setCaretOffset(long aOffset) { -__try { + A11Y_TRYBLOCK_BEGIN + HyperTextAccessible* textAcc = static_cast<HyperTextAccessibleWrap*>(this); if (textAcc->IsDefunct()) return CO_E_OBJNOTCONNECTED; nsresult rv = textAcc->SetCaretOffset(aOffset); return GetHRESULT(rv); -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleText::setSelection(long aSelectionIndex, long aStartOffset, long aEndOffset) { -__try { + A11Y_TRYBLOCK_BEGIN + HyperTextAccessible* textAcc = static_cast<HyperTextAccessibleWrap*>(this); if (textAcc->IsDefunct()) return CO_E_OBJNOTCONNECTED; nsresult rv = textAcc->SetSelectionBounds(aSelectionIndex, aStartOffset, aEndOffset); return GetHRESULT(rv); -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleText::get_nCharacters(long *aNCharacters) { -__try { + A11Y_TRYBLOCK_BEGIN + *aNCharacters = 0; HyperTextAccessible* textAcc = static_cast<HyperTextAccessibleWrap*>(this); if (textAcc->IsDefunct()) return CO_E_OBJNOTCONNECTED; *aNCharacters = textAcc->CharacterCount(); return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleText::scrollSubstringTo(long aStartIndex, long aEndIndex, enum IA2ScrollType aScrollType) { -__try { + A11Y_TRYBLOCK_BEGIN + HyperTextAccessible* textAcc = static_cast<HyperTextAccessibleWrap*>(this); if (textAcc->IsDefunct()) return CO_E_OBJNOTCONNECTED; nsresult rv = textAcc->ScrollSubstringTo(aStartIndex, aEndIndex, aScrollType); return GetHRESULT(rv); -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleText::scrollSubstringToPoint(long aStartIndex, long aEndIndex, enum IA2CoordinateType aCoordType, long aX, long aY) { -__try { + A11Y_TRYBLOCK_BEGIN + HyperTextAccessible* textAcc = static_cast<HyperTextAccessibleWrap*>(this); if (textAcc->IsDefunct()) return CO_E_OBJNOTCONNECTED; uint32_t geckoCoordType = (aCoordType == IA2_COORDTYPE_SCREEN_RELATIVE) ? nsIAccessibleCoordinateType::COORDTYPE_SCREEN_RELATIVE : nsIAccessibleCoordinateType::COORDTYPE_PARENT_RELATIVE; nsresult rv = textAcc->ScrollSubstringToPoint(aStartIndex, aEndIndex, geckoCoordType, aX, aY); return GetHRESULT(rv); -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleText::get_newText(IA2TextSegment *aNewText) { -__try { + A11Y_TRYBLOCK_BEGIN + return GetModifiedText(true, aNewText); -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleText::get_oldText(IA2TextSegment *aOldText) { -__try { + A11Y_TRYBLOCK_BEGIN + return GetModifiedText(false, aOldText); -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } // ia2AccessibleText HRESULT ia2AccessibleText::GetModifiedText(bool aGetInsertedText, IA2TextSegment *aText) {
--- a/accessible/src/windows/ia2/ia2AccessibleValue.cpp +++ b/accessible/src/windows/ia2/ia2AccessibleValue.cpp @@ -34,92 +34,92 @@ ia2AccessibleValue::QueryInterface(REFII return E_NOINTERFACE; } // IAccessibleValue STDMETHODIMP ia2AccessibleValue::get_currentValue(VARIANT* aCurrentValue) { -__try { + A11Y_TRYBLOCK_BEGIN + VariantInit(aCurrentValue); AccessibleWrap* valueAcc = static_cast<AccessibleWrap*>(this); if (valueAcc->IsDefunct()) return CO_E_OBJNOTCONNECTED; double currentValue = 0; nsresult rv = valueAcc->GetCurrentValue(¤tValue); if (NS_FAILED(rv)) return GetHRESULT(rv); aCurrentValue->vt = VT_R8; aCurrentValue->dblVal = currentValue; return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleValue::setCurrentValue(VARIANT aValue) { -__try { + A11Y_TRYBLOCK_BEGIN + AccessibleWrap* valueAcc = static_cast<AccessibleWrap*>(this); if (valueAcc->IsDefunct()) return CO_E_OBJNOTCONNECTED; if (aValue.vt != VT_R8) return E_INVALIDARG; nsresult rv = valueAcc->SetCurrentValue(aValue.dblVal); return GetHRESULT(rv); -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleValue::get_maximumValue(VARIANT* aMaximumValue) { -__try { + A11Y_TRYBLOCK_BEGIN + VariantInit(aMaximumValue); AccessibleWrap* valueAcc = static_cast<AccessibleWrap*>(this); if (valueAcc->IsDefunct()) return CO_E_OBJNOTCONNECTED; double maximumValue = 0; nsresult rv = valueAcc->GetMaximumValue(&maximumValue); if (NS_FAILED(rv)) return GetHRESULT(rv); aMaximumValue->vt = VT_R8; aMaximumValue->dblVal = maximumValue; return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END } STDMETHODIMP ia2AccessibleValue::get_minimumValue(VARIANT* aMinimumValue) { -__try { + A11Y_TRYBLOCK_BEGIN + VariantInit(aMinimumValue); AccessibleWrap* valueAcc = static_cast<AccessibleWrap*>(this); if (valueAcc->IsDefunct()) return CO_E_OBJNOTCONNECTED; double minimumValue = 0; nsresult rv = valueAcc->GetMinimumValue(&minimumValue); if (NS_FAILED(rv)) return GetHRESULT(rv); aMinimumValue->vt = VT_R8; aMinimumValue->dblVal = minimumValue; return S_OK; -} __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } - return E_FAIL; + A11Y_TRYBLOCK_END }