office-gobmx/accessibility/inc/extended
Michael Weghorn f1dbbfe278 a11y: Don't throw exception on valid list box entry action index
`checkActionIndex_Impl` was previously throwing
an IndexOutOfBoundsException for any index other than 0.

The

    // only three actions

comment in there was only adding to the confusion...

Convert that helper function to a method of the class
and take the actual count of actions into account.

Also drop the misleading `ACCESSIBLE_ACTION_COUNT`
define altogether, and just return 1 at the only
remaining place using it.

This fixes a crash seen with the qt6 VCL plugin
and Orca running when opening the spelling options
dialog ("Tools" -> "Spelling", then press the
"Options..." button).

    1  __pthread_kill_implementation                                         pthread_kill.c             44   0x7f29908a80fc
    2  __pthread_kill_internal                                               pthread_kill.c             78   0x7f29908a815f
    3  __GI_raise                                                            raise.c                    26   0x7f299085a472
    4  __GI_abort                                                            abort.c                    79   0x7f29908444b2
    5  ??                                                                                                    0x7f29904a09db
    6  ??                                                                                                    0x7f29904affaa
    7  std::terminate()                                                                                      0x7f29904b0015
    8  __cxa_throw                                                                                           0x7f29904b0268
    9  (anonymous namespace)::checkActionIndex_Impl                          accessiblelistboxentry.cxx 49   0x7f29562aeb82
    10 accessibility::AccessibleListBoxEntry::getAccessibleActionDescription accessiblelistboxentry.cxx 770  0x7f29562b2b9b
    11 QtAccessibleWidget::actionNames                                       QtAccessibleWidget.cxx     805  0x7f297c84a8d7
    12 QAccessibleBridgeUtils::effectiveActionNames                          qaccessiblebridgeutils.cpp 25   0x7f297b6c90a5
    13 AtSpiAdaptor::actionInterface                                         atspiadaptor.cpp           1862 0x7f297b6e2cc0
    14 AtSpiAdaptor::handleMessage                                           atspiadaptor.cpp           1438 0x7f297b6de432
    15 QDBusConnectionPrivate::activateObject                                qdbusintegrator.cpp        1438 0x7f2979ec0ecb
    16 QDBusActivateObjectEvent::placeMetaCall                               qdbusintegrator.cpp        1594 0x7f2979ec1bb0
    17 QObject::event                                                        qobject.cpp                1446 0x7f297c02116e
    18 QApplicationPrivate::notify_helper                                    qapplication.cpp           3295 0x7f297a59d714
    19 QApplication::notify                                                  qapplication.cpp           3246 0x7f297a59d524
    20 QCoreApplication::notifyInternal2                                     qcoreapplication.cpp       1131 0x7f297bfa23ba
    21 QCoreApplication::sendEvent                                           qcoreapplication.cpp       1572 0x7f297bfa2ead
    22 QCoreApplicationPrivate::sendPostedEvents                             qcoreapplication.cpp       1937 0x7f297bfa3ea6
    23 QCoreApplication::sendPostedEvents                                    qcoreapplication.cpp       1794 0x7f297bfa37ae
    24 postEventSourceDispatch                                               qeventdispatcher_glib.cpp  244  0x7f297c3b9108
    25 ??                                                                                                    0x7f29835111b4
    26 ??                                                                                                    0x7f29835142d7
    27 g_main_context_iteration                                                                              0x7f29835148f0
    28 QEventDispatcherGlib::processEvents                                   qeventdispatcher_glib.cpp  394  0x7f297c3b999d
    29 QXcbGlibEventDispatcher::processEvents                                qxcbeventdispatcher.cpp    96   0x7f2979c67036
    30 QtInstance::ImplYield                                                 QtInstance.cxx             421  0x7f297c8c27c6
    31 QtInstance::DoYield                                                   QtInstance.cxx             432  0x7f297c8c28ef
    32 ImplYield                                                             svapp.cxx                  377  0x7f298732dcc8
    33 Application::Yield                                                    svapp.cxx                  461  0x7f298732ea66
    34 Application::Execute                                                  svapp.cxx                  355  0x7f298732d9bb
    35 desktop::Desktop::Main                                                app.cxx                    1601 0x7f2990a35716
    36 ImplSVMain                                                            svmain.cxx                 204  0x7f298734d600
    37 SVMain                                                                svmain.cxx                 236  0x7f298734d735
    38 soffice_main                                                          sofficemain.cxx            94   0x7f2990aa058f
    39 sal_main                                                              main.c                     51   0x5629220af9d4
    40 main                                                                  main.c                     49   0x5629220af9ba

Change-Id: Ib3ed8616fb539942d9ba0cd60d5607859deb5a7b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158344
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2023-10-23 20:35:52 +02:00
..
AccessibleBrowseBox.hxx
AccessibleBrowseBoxBase.hxx
accessiblebrowseboxcell.hxx
AccessibleBrowseBoxCheckBoxCell.hxx
AccessibleBrowseBoxHeaderBar.hxx
AccessibleBrowseBoxHeaderCell.hxx
AccessibleBrowseBoxTable.hxx
AccessibleBrowseBoxTableBase.hxx
AccessibleBrowseBoxTableCell.hxx
accessibleeditbrowseboxcell.hxx
AccessibleGridControl.hxx
AccessibleGridControlBase.hxx
AccessibleGridControlHeader.hxx
AccessibleGridControlHeaderCell.hxx
AccessibleGridControlTable.hxx
AccessibleGridControlTableBase.hxx
AccessibleGridControlTableCell.hxx
accessibleiconchoicectrl.hxx
accessibleiconchoicectrlentry.hxx
AccessibleIconView.hxx
accessiblelistbox.hxx
accessiblelistboxentry.hxx
accessibletabbar.hxx
accessibletabbarbase.hxx
accessibletabbarpage.hxx
accessibletabbarpagelist.hxx
accessibletablistbox.hxx
accessibletablistboxtable.hxx
textwindowaccessibility.hxx