summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@digia.com>2014-06-24 16:06:04 +0200
committerFrederik Gladhorn <frederik.gladhorn@digia.com>2014-07-01 17:21:20 +0200
commit0272ce641778ddaba6ac550b6bbfd4e5e5adaad1 (patch)
tree7d38dc5f2fe751cfbc91e7ae901cd511a4465906
parent256f810be3af225bac1ed464a13bcd314a00f303 (diff)
Accessibility Windows: Do not assert on invalid indexInParent
We try to but don't always guarantee a valid hierarchy, having applications crash because of this is not a good idea. The assert currently triggers when showing message boxes. Fix for the message box case is in progress but this may happen in other situations. Change-Id: I6f82b23c8abfcb7f91ecde0584f0e01bd8216ca1 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com> Reviewed-by: Caroline Chao <caroline.chao@digia.com>
-rw-r--r--src/plugins/platforms/windows/accessible/iaccessible2.cpp8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/plugins/platforms/windows/accessible/iaccessible2.cpp b/src/plugins/platforms/windows/accessible/iaccessible2.cpp
index d56925d0c4..032f33163a 100644
--- a/src/plugins/platforms/windows/accessible/iaccessible2.cpp
+++ b/src/plugins/platforms/windows/accessible/iaccessible2.cpp
@@ -502,13 +502,11 @@ HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::get_indexInParent(long *indexIn
if (!indexInParent)
return E_INVALIDARG;
QAccessibleInterface *par = accessible->parent();
- if (!par) {
- *indexInParent = -1;
+ *indexInParent = par ? par->indexOfChild(accessible) : -1;
+ if (*indexInParent < 0) {
+ qCWarning(lcQpaAccessibility) << "index in parent invalid:" << accessible << "parent:" << par;
return S_FALSE;
}
- int indexOfChild = par->indexOfChild(accessible);
- Q_ASSERT(indexOfChild >= 0);
- *indexInParent = indexOfChild;
return S_OK;
}