From 613c55115a57dc2dcdf4212e79259d4d1be2979c Mon Sep 17 00:00:00 2001 From: Arnaud Versini Date: Sat, 28 Nov 2020 14:24:41 +0100 Subject: a11y : avoid double locking Change-Id: I1348fb33b9c93d54cd128bf6ac56a3c4c57eec3b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106806 Tested-by: Jenkins Reviewed-by: Noel Grandin --- accessibility/inc/extended/AccessibleGridControl.hxx | 3 +++ accessibility/source/extended/AccessibleGridControl.cxx | 11 ++++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) (limited to 'accessibility') diff --git a/accessibility/inc/extended/AccessibleGridControl.hxx b/accessibility/inc/extended/AccessibleGridControl.hxx index 3140db59e395..5584fe5ed01b 100644 --- a/accessibility/inc/extended/AccessibleGridControl.hxx +++ b/accessibility/inc/extended/AccessibleGridControl.hxx @@ -151,6 +151,9 @@ private: /** The table cell child. */ rtl::Reference m_xCell; + + /** @return The count of visible children. */ + inline sal_Int32 implGetAccessibleChildCount(); }; diff --git a/accessibility/source/extended/AccessibleGridControl.cxx b/accessibility/source/extended/AccessibleGridControl.cxx index 5738c6f3fd98..2c41881fb4f3 100644 --- a/accessibility/source/extended/AccessibleGridControl.cxx +++ b/accessibility/source/extended/AccessibleGridControl.cxx @@ -77,14 +77,19 @@ void SAL_CALL AccessibleGridControl::disposing() AccessibleGridControlBase::disposing(); } +sal_Int32 AccessibleGridControl::implGetAccessibleChildCount() +{ + return m_aTable.GetAccessibleControlCount(); +} // css::accessibility::XAccessibleContext --------------------------------------------------------- + sal_Int32 SAL_CALL AccessibleGridControl::getAccessibleChildCount() { SolarMutexGuard aSolarGuard; ensureIsAlive(); - return m_aTable.GetAccessibleControlCount(); + return implGetAccessibleChildCount(); } @@ -93,7 +98,7 @@ AccessibleGridControl::getAccessibleChild( sal_Int32 nChildIndex ) { SolarMutexGuard aSolarGuard; - if (nChildIndex<0 || nChildIndex>=getAccessibleChildCount()) + if (nChildIndex<0 || nChildIndex>=implGetAccessibleChildCount()) throw IndexOutOfBoundsException(); css::uno::Reference< css::accessibility::XAccessible > xChild; @@ -264,7 +269,7 @@ AccessibleGridControlTable* AccessibleGridControl::createAccessibleTable() void AccessibleGridControl::commitCellEvent(sal_Int16 _nEventId,const Any& _rNewValue,const Any& _rOldValue) { - sal_Int32 nChildCount = getAccessibleChildCount(); + sal_Int32 nChildCount = implGetAccessibleChildCount(); if(nChildCount != 0) { for(sal_Int32 i=0;i