author | Alexander Surkov <surkov.alexander@gmail.com> |
Thu, 01 Sep 2011 16:12:40 +0900 | |
changeset 76319 | 4e3d2bb73029fe01ba9011dae4f3b88c8d54a39e |
parent 76318 | dc12ae87f5b92652b1fb49f725d848906d962b1b |
child 76320 | e2a69e20bbc508fa9467c2381f1074ed10f97537 |
push id | 1625 |
push user | surkov.alexander@gmail.com |
push date | Thu, 01 Sep 2011 07:23:56 +0000 |
treeherder | mozilla-inbound@e2a69e20bbc5 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | tbsaunde |
bugs | 682827 |
milestone | 9.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/base/nsAccessibilityService.cpp +++ b/accessible/src/base/nsAccessibilityService.cpp @@ -638,16 +638,19 @@ nsAccessibilityService::GetAccessibleFor nsIAccessible **aAccessible) { NS_ENSURE_ARG_POINTER(aAccessible); *aAccessible = nsnull; if (!aNode) return NS_OK; nsCOMPtr<nsINode> node(do_QueryInterface(aNode)); + if (!node) + return NS_ERROR_INVALID_ARG; + NS_IF_ADDREF(*aAccessible = GetAccessible(node)); return NS_OK; } NS_IMETHODIMP nsAccessibilityService::GetStringRole(PRUint32 aRole, nsAString& aString) { if ( aRole >= NS_ARRAY_LENGTH(kRoleNames)) { @@ -807,24 +810,30 @@ nsAccessibilityService::GetStringRelatio return NS_OK; } NS_IMETHODIMP nsAccessibilityService::GetAccessibleFromCache(nsIDOMNode* aNode, nsIAccessible** aAccessible) { NS_ENSURE_ARG_POINTER(aAccessible); + *aAccessible = nsnull; + if (!aNode) + return NS_OK; + + nsCOMPtr<nsINode> node(do_QueryInterface(aNode)); + if (!node) + return NS_ERROR_INVALID_ARG; // Search for an accessible in each of our per document accessible object // caches. If we don't find it, and the given node is itself a document, check // our cache of document accessibles (document cache). Note usually shutdown // document accessibles are not stored in the document cache, however an // "unofficially" shutdown document (i.e. not from nsAccDocManager) can still // exist in the document cache. - nsCOMPtr<nsINode> node(do_QueryInterface(aNode)); nsAccessible* accessible = FindAccessibleInCache(node); if (!accessible) { nsCOMPtr<nsIDocument> document(do_QueryInterface(node)); if (document) accessible = GetDocAccessibleFromCache(document); } NS_IF_ADDREF(*aAccessible = accessible);