diff options
author | Jan-Arve Saether <jan-arve.saether@nokia.com> | 2011-08-12 09:52:15 (GMT) |
---|---|---|
committer | Jan-Arve Saether <jan-arve.saether@nokia.com> | 2011-08-15 12:27:42 (GMT) |
commit | 6f84e64f3500db9901bb518c8c5bd2ca03fbbf42 (patch) | |
tree | 764bcb6d46185bc2c009bfd1f2d38d10676313dc /src/winmain/qtmain_win.cpp | |
parent | 84f5f63baa4bee04954fbdf3cf3d3126023798af (diff) | |
download | Qt-6f84e64f3500db9901bb518c8c5bd2ca03fbbf42.zip Qt-6f84e64f3500db9901bb518c8c5bd2ca03fbbf42.tar.gz Qt-6f84e64f3500db9901bb518c8c5bd2ca03fbbf42.tar.bz2 |
Fix a crash in a11y introduced by d289e54f2d2aa066cb3
The problem was that the patch assumed that all AT clients only called
get_accChild() after NotifyWinEvent was called with a negative child id
argument. However, some AT clients might call get_accRole() and
get_accState() with that negative value. Implementations of
QAccessibleInterface::role() should be able to make the assumption that
the child index is always valid.
The safe solution is to always look for the item in the cache if the
child index is negative for all IAccessible functions we implement.
If its positive or zero, execute as before.
Crash could be reproduced by:
1. Start MS narrator
2. launch examples\dialogs\tabdialog
3. Click the tab labeled "Permissions"
*crash* assertion in QList, index out of range.
Reviewed-by: Frederik Gladhorn
Diffstat (limited to 'src/winmain/qtmain_win.cpp')
0 files changed, 0 insertions, 0 deletions