summaryrefslogtreecommitdiff
path: root/accessibility
diff options
context:
space:
mode:
authorArnaud Versini <arnaud.versini@gmail.com>2016-12-18 15:18:31 +0100
committerNoel Grandin <noel.grandin@collabora.co.uk>2017-01-09 18:18:05 +0000
commit62affdd4bf8ac45dfe6ce5274623e659895fdafa (patch)
tree51299b6adf759ff3c318a83f62c5c3a296fa98d9 /accessibility
parenta7168a1aa7429eae8249622ea19acc4cd564a18f (diff)
accessibility: simplify locking
Change-Id: I87580eabf87fffd86068b5b2e44672aa1f9ffe84 Reviewed-on: https://gerrit.libreoffice.org/32136 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'accessibility')
-rw-r--r--accessibility/inc/extended/AccessibleBrowseBoxBase.hxx6
-rw-r--r--accessibility/source/extended/AccessibleBrowseBox.cxx14
-rw-r--r--accessibility/source/extended/AccessibleBrowseBoxBase.cxx18
-rw-r--r--accessibility/source/extended/AccessibleBrowseBoxHeaderBar.cxx60
-rw-r--r--accessibility/source/extended/AccessibleBrowseBoxHeaderCell.cxx4
-rw-r--r--accessibility/source/extended/AccessibleBrowseBoxTable.cxx39
-rw-r--r--accessibility/source/extended/AccessibleBrowseBoxTableBase.cxx24
-rw-r--r--accessibility/source/extended/AccessibleBrowseBoxTableCell.cxx69
-rw-r--r--accessibility/source/extended/accessiblebrowseboxcell.cxx4
-rw-r--r--accessibility/source/extended/accessibleeditbrowseboxcell.cxx38
-rw-r--r--accessibility/source/extended/accessibletablistbox.cxx3
11 files changed, 135 insertions, 144 deletions
diff --git a/accessibility/inc/extended/AccessibleBrowseBoxBase.hxx b/accessibility/inc/extended/AccessibleBrowseBoxBase.hxx
index 32bc20761917..dd65a8e6edad 100644
--- a/accessibility/inc/extended/AccessibleBrowseBoxBase.hxx
+++ b/accessibility/inc/extended/AccessibleBrowseBoxBase.hxx
@@ -406,12 +406,10 @@ protected:
class SolarMethodGuard : public SolarMutexGuard, public osl::MutexGuard
{
public:
- inline SolarMethodGuard( AccessibleBrowseBoxBase& _rOwner, bool _bEnsureAlive = true )
+ inline SolarMethodGuard( osl::Mutex& rMutex )
:SolarMutexGuard( )
- ,osl::MutexGuard( _rOwner.getMutex( ) )
+ ,osl::MutexGuard( rMutex )
{
- if ( _bEnsureAlive )
- _rOwner.ensureIsAlive( );
}
};
diff --git a/accessibility/source/extended/AccessibleBrowseBox.cxx b/accessibility/source/extended/AccessibleBrowseBox.cxx
index fea99659c7aa..377dc0a6068a 100644
--- a/accessibility/source/extended/AccessibleBrowseBox.cxx
+++ b/accessibility/source/extended/AccessibleBrowseBox.cxx
@@ -112,9 +112,9 @@ void SAL_CALL AccessibleBrowseBox::disposing()
sal_Int32 SAL_CALL AccessibleBrowseBox::getAccessibleChildCount()
throw ( uno::RuntimeException, std::exception )
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
+
return BBINDEX_FIRSTCONTROL + mpBrowseBox->GetAccessibleControlCount();
}
@@ -123,8 +123,7 @@ css::uno::Reference< css::accessibility::XAccessible > SAL_CALL
AccessibleBrowseBox::getAccessibleChild( sal_Int32 nChildIndex )
throw ( lang::IndexOutOfBoundsException, uno::RuntimeException, std::exception )
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
css::uno::Reference< css::accessibility::XAccessible > xRet;
@@ -152,8 +151,7 @@ css::uno::Reference< css::accessibility::XAccessible > SAL_CALL
AccessibleBrowseBox::getAccessibleAtPoint( const awt::Point& rPoint )
throw ( uno::RuntimeException, std::exception )
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
css::uno::Reference< css::accessibility::XAccessible > xChild;
@@ -183,9 +181,9 @@ AccessibleBrowseBox::getAccessibleAtPoint( const awt::Point& rPoint )
void SAL_CALL AccessibleBrowseBox::grabFocus()
throw ( uno::RuntimeException, std::exception )
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
+
mpBrowseBox->GrabFocus();
}
diff --git a/accessibility/source/extended/AccessibleBrowseBoxBase.cxx b/accessibility/source/extended/AccessibleBrowseBoxBase.cxx
index a13e23ff8c08..ccb2c3728062 100644
--- a/accessibility/source/extended/AccessibleBrowseBoxBase.cxx
+++ b/accessibility/source/extended/AccessibleBrowseBoxBase.cxx
@@ -187,8 +187,7 @@ Reference< css::accessibility::XAccessibleStateSet > SAL_CALL
AccessibleBrowseBoxBase::getAccessibleStateSet()
throw ( uno::RuntimeException, std::exception )
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard( getMutex() );
// don't check whether alive -> StateSet may contain DEFUNC
return implCreateStateSetHelper();
}
@@ -404,9 +403,9 @@ void AccessibleBrowseBoxBase::ensureIsAlive() const
Rectangle AccessibleBrowseBoxBase::getBoundingBox()
throw ( lang::DisposedException )
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
+
Rectangle aRect = implGetBoundingBox();
if ( 0 == aRect.Left() && 0 == aRect.Top() && 0 == aRect.Right() && 0 == aRect.Bottom() )
{
@@ -418,9 +417,9 @@ Rectangle AccessibleBrowseBoxBase::getBoundingBox()
Rectangle AccessibleBrowseBoxBase::getBoundingBoxOnScreen()
throw ( lang::DisposedException )
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
+
Rectangle aRect = implGetBoundingBoxOnScreen();
if ( 0 == aRect.Left() && 0 == aRect.Top() && 0 == aRect.Right() && 0 == aRect.Bottom() )
{
@@ -494,8 +493,7 @@ void SAL_CALL AccessibleBrowseBoxBase::disposing( const css::lang::EventObject&
sal_Int32 SAL_CALL AccessibleBrowseBoxBase::getForeground( ) throw (css::uno::RuntimeException, std::exception)
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
sal_Int32 nColor = 0;
@@ -520,9 +518,9 @@ sal_Int32 SAL_CALL AccessibleBrowseBoxBase::getForeground( ) throw (css::uno::R
sal_Int32 SAL_CALL AccessibleBrowseBoxBase::getBackground( ) throw (css::uno::RuntimeException, std::exception)
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
+
sal_Int32 nColor = 0;
vcl::Window* pInst = mpBrowseBox->GetWindowInstance();
if ( pInst )
diff --git a/accessibility/source/extended/AccessibleBrowseBoxHeaderBar.cxx b/accessibility/source/extended/AccessibleBrowseBoxHeaderBar.cxx
index eb1d0ca2823d..cd9ce964e298 100644
--- a/accessibility/source/extended/AccessibleBrowseBoxHeaderBar.cxx
+++ b/accessibility/source/extended/AccessibleBrowseBoxHeaderBar.cxx
@@ -56,9 +56,9 @@ Reference< XAccessible > SAL_CALL
AccessibleBrowseBoxHeaderBar::getAccessibleChild( sal_Int32 nChildIndex )
throw ( lang::IndexOutOfBoundsException, uno::RuntimeException, std::exception )
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
+
ensureIsValidHeaderIndex( nChildIndex );
return implGetChild( nChildIndex, implToVCLColumnPos( nChildIndex ) );
}
@@ -75,8 +75,7 @@ Reference< XAccessible > SAL_CALL
AccessibleBrowseBoxHeaderBar::getAccessibleAtPoint( const awt::Point& rPoint )
throw ( uno::RuntimeException, std::exception )
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
sal_Int32 nRow = 0;
@@ -100,8 +99,8 @@ void SAL_CALL AccessibleBrowseBoxHeaderBar::grabFocus()
OUString SAL_CALL AccessibleBrowseBoxHeaderBar::getAccessibleRowDescription( sal_Int32 nRow )
throw ( lang::IndexOutOfBoundsException, uno::RuntimeException, std::exception )
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
+
ensureIsAlive();
ensureIsValidRow( nRow );
return OUString(); // no headers in headers
@@ -110,8 +109,8 @@ OUString SAL_CALL AccessibleBrowseBoxHeaderBar::getAccessibleRowDescription( sal
OUString SAL_CALL AccessibleBrowseBoxHeaderBar::getAccessibleColumnDescription( sal_Int32 nColumn )
throw ( lang::IndexOutOfBoundsException, uno::RuntimeException, std::exception )
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
+
ensureIsAlive();
ensureIsValidColumn( nColumn );
return OUString(); // no headers in headers
@@ -134,8 +133,7 @@ Reference< XAccessibleTable > SAL_CALL AccessibleBrowseBoxHeaderBar::getAccessib
Sequence< sal_Int32 > SAL_CALL AccessibleBrowseBoxHeaderBar::getSelectedAccessibleRows()
throw ( uno::RuntimeException, std::exception )
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
Sequence< sal_Int32 > aSelSeq;
@@ -148,8 +146,7 @@ Sequence< sal_Int32 > SAL_CALL AccessibleBrowseBoxHeaderBar::getSelectedAccessib
Sequence< sal_Int32 > SAL_CALL AccessibleBrowseBoxHeaderBar::getSelectedAccessibleColumns()
throw ( uno::RuntimeException, std::exception )
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
Sequence< sal_Int32 > aSelSeq;
@@ -162,8 +159,8 @@ Sequence< sal_Int32 > SAL_CALL AccessibleBrowseBoxHeaderBar::getSelectedAccessib
sal_Bool SAL_CALL AccessibleBrowseBoxHeaderBar::isAccessibleRowSelected( sal_Int32 nRow )
throw ( lang::IndexOutOfBoundsException, uno::RuntimeException, std::exception )
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
+
ensureIsAlive();
ensureIsValidRow( nRow );
return isRowBar() && implIsRowSelected( nRow );
@@ -172,8 +169,8 @@ sal_Bool SAL_CALL AccessibleBrowseBoxHeaderBar::isAccessibleRowSelected( sal_Int
sal_Bool SAL_CALL AccessibleBrowseBoxHeaderBar::isAccessibleColumnSelected( sal_Int32 nColumn )
throw ( lang::IndexOutOfBoundsException, uno::RuntimeException, std::exception )
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
+
ensureIsAlive();
ensureIsValidColumn( nColumn );
return isColumnBar() && implIsColumnSelected( nColumn );
@@ -183,10 +180,11 @@ Reference< XAccessible > SAL_CALL AccessibleBrowseBoxHeaderBar::getAccessibleCel
sal_Int32 nRow, sal_Int32 nColumn )
throw ( lang::IndexOutOfBoundsException, uno::RuntimeException, std::exception )
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
+
ensureIsAlive();
ensureIsValidAddress( nRow, nColumn );
+
return implGetChild( nRow, implToVCLColumnPos( nColumn ) );
}
@@ -194,9 +192,9 @@ sal_Bool SAL_CALL AccessibleBrowseBoxHeaderBar::isAccessibleSelected(
sal_Int32 nRow, sal_Int32 nColumn )
throw ( lang::IndexOutOfBoundsException, uno::RuntimeException, std::exception )
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
+
ensureIsValidAddress( nRow, nColumn );
return isRowBar() ? implIsRowSelected( nRow ) : implIsColumnSelected( nColumn );
}
@@ -206,9 +204,9 @@ sal_Bool SAL_CALL AccessibleBrowseBoxHeaderBar::isAccessibleSelected(
void SAL_CALL AccessibleBrowseBoxHeaderBar::selectAccessibleChild( sal_Int32 nChildIndex )
throw ( lang::IndexOutOfBoundsException, uno::RuntimeException, std::exception )
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
+
ensureIsValidHeaderIndex( nChildIndex );
if( isRowBar() )
implSelectRow( nChildIndex, true );
@@ -228,18 +226,18 @@ sal_Bool SAL_CALL AccessibleBrowseBoxHeaderBar::isAccessibleChildSelected( sal_I
void SAL_CALL AccessibleBrowseBoxHeaderBar::clearAccessibleSelection()
throw ( uno::RuntimeException, std::exception )
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
+
mpBrowseBox->SetNoSelection();
}
void SAL_CALL AccessibleBrowseBoxHeaderBar::selectAllAccessibleChildren()
throw ( uno::RuntimeException, std::exception )
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
+
// no multiselection of columns possible
if( isRowBar() )
mpBrowseBox->SelectAll();
@@ -250,9 +248,9 @@ void SAL_CALL AccessibleBrowseBoxHeaderBar::selectAllAccessibleChildren()
sal_Int32 SAL_CALL AccessibleBrowseBoxHeaderBar::getSelectedAccessibleChildCount()
throw ( uno::RuntimeException, std::exception )
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
+
return isRowBar() ? implGetSelectedRowCount() : implGetSelectedColumnCount();
}
@@ -260,8 +258,7 @@ Reference< XAccessible > SAL_CALL
AccessibleBrowseBoxHeaderBar::getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex )
throw ( lang::IndexOutOfBoundsException, uno::RuntimeException, std::exception )
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
// method may throw lang::IndexOutOfBoundsException
@@ -273,8 +270,7 @@ void SAL_CALL AccessibleBrowseBoxHeaderBar::deselectAccessibleChild(
sal_Int32 nSelectedChildIndex )
throw ( lang::IndexOutOfBoundsException, uno::RuntimeException, std::exception )
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
// method may throw lang::IndexOutOfBoundsException
diff --git a/accessibility/source/extended/AccessibleBrowseBoxHeaderCell.cxx b/accessibility/source/extended/AccessibleBrowseBoxHeaderCell.cxx
index af592e25c645..e9fc495a67b1 100644
--- a/accessibility/source/extended/AccessibleBrowseBoxHeaderCell.cxx
+++ b/accessibility/source/extended/AccessibleBrowseBoxHeaderCell.cxx
@@ -101,9 +101,9 @@ Reference<XAccessible > SAL_CALL AccessibleBrowseBoxHeaderCell::getAccessibleChi
void SAL_CALL AccessibleBrowseBoxHeaderCell::grabFocus()
throw ( css::uno::RuntimeException, std::exception )
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
+
if ( isRowBarCell() )
mpBrowseBox->SelectRow(m_nColumnRowId);
else
diff --git a/accessibility/source/extended/AccessibleBrowseBoxTable.cxx b/accessibility/source/extended/AccessibleBrowseBoxTable.cxx
index 2585166d5e1d..756146d0792d 100644
--- a/accessibility/source/extended/AccessibleBrowseBoxTable.cxx
+++ b/accessibility/source/extended/AccessibleBrowseBoxTable.cxx
@@ -51,9 +51,9 @@ Reference< XAccessible > SAL_CALL
AccessibleBrowseBoxTable::getAccessibleChild( sal_Int32 nChildIndex )
throw ( lang::IndexOutOfBoundsException, uno::RuntimeException, std::exception )
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
+
ensureIsValidIndex( nChildIndex );
return mpBrowseBox->CreateAccessibleCell(
implGetRow( nChildIndex ), (sal_Int16)implGetColumn( nChildIndex ) );
@@ -72,8 +72,7 @@ Reference< XAccessible > SAL_CALL
AccessibleBrowseBoxTable::getAccessibleAtPoint( const awt::Point& rPoint )
throw ( uno::RuntimeException, std::exception )
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
Reference< XAccessible > xChild;
@@ -88,8 +87,7 @@ AccessibleBrowseBoxTable::getAccessibleAtPoint( const awt::Point& rPoint )
void SAL_CALL AccessibleBrowseBoxTable::grabFocus()
throw ( uno::RuntimeException, std::exception )
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
mpBrowseBox->GrabTableFocus();
}
@@ -99,8 +97,7 @@ void SAL_CALL AccessibleBrowseBoxTable::grabFocus()
OUString SAL_CALL AccessibleBrowseBoxTable::getAccessibleRowDescription( sal_Int32 nRow )
throw ( lang::IndexOutOfBoundsException, uno::RuntimeException, std::exception )
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
ensureIsValidRow( nRow );
return mpBrowseBox->GetRowDescription( nRow );
@@ -109,9 +106,9 @@ OUString SAL_CALL AccessibleBrowseBoxTable::getAccessibleRowDescription( sal_Int
OUString SAL_CALL AccessibleBrowseBoxTable::getAccessibleColumnDescription( sal_Int32 nColumn )
throw ( lang::IndexOutOfBoundsException, uno::RuntimeException, std::exception )
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
+
ensureIsValidColumn( nColumn );
return mpBrowseBox->GetColumnDescription( (sal_uInt16)nColumn );
}
@@ -135,8 +132,7 @@ Reference< XAccessibleTable > SAL_CALL AccessibleBrowseBoxTable::getAccessibleCo
Sequence< sal_Int32 > SAL_CALL AccessibleBrowseBoxTable::getSelectedAccessibleRows()
throw ( uno::RuntimeException, std::exception )
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
Sequence< sal_Int32 > aSelSeq;
@@ -147,8 +143,7 @@ Sequence< sal_Int32 > SAL_CALL AccessibleBrowseBoxTable::getSelectedAccessibleRo
Sequence< sal_Int32 > SAL_CALL AccessibleBrowseBoxTable::getSelectedAccessibleColumns()
throw ( uno::RuntimeException, std::exception )
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
Sequence< sal_Int32 > aSelSeq;
@@ -159,9 +154,9 @@ Sequence< sal_Int32 > SAL_CALL AccessibleBrowseBoxTable::getSelectedAccessibleCo
sal_Bool SAL_CALL AccessibleBrowseBoxTable::isAccessibleRowSelected( sal_Int32 nRow )
throw ( lang::IndexOutOfBoundsException, uno::RuntimeException, std::exception )
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
+
ensureIsValidRow( nRow );
return implIsRowSelected( nRow );
}
@@ -169,9 +164,9 @@ sal_Bool SAL_CALL AccessibleBrowseBoxTable::isAccessibleRowSelected( sal_Int32 n
sal_Bool SAL_CALL AccessibleBrowseBoxTable::isAccessibleColumnSelected( sal_Int32 nColumn )
throw ( lang::IndexOutOfBoundsException, uno::RuntimeException, std::exception )
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
+
ensureIsValidColumn( nColumn );
return implIsColumnSelected( nColumn );
}
@@ -180,9 +175,9 @@ Reference< XAccessible > SAL_CALL AccessibleBrowseBoxTable::getAccessibleCellAt(
sal_Int32 nRow, sal_Int32 nColumn )
throw ( lang::IndexOutOfBoundsException, uno::RuntimeException, std::exception )
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
+
ensureIsValidAddress( nRow, nColumn );
return mpBrowseBox->CreateAccessibleCell( nRow, (sal_Int16)nColumn );
}
@@ -191,9 +186,9 @@ sal_Bool SAL_CALL AccessibleBrowseBoxTable::isAccessibleSelected(
sal_Int32 nRow, sal_Int32 nColumn )
throw ( lang::IndexOutOfBoundsException, uno::RuntimeException, std::exception )
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
+
ensureIsValidAddress( nRow, nColumn );
return implIsRowSelected( nRow ) || implIsColumnSelected( nColumn );
}
diff --git a/accessibility/source/extended/AccessibleBrowseBoxTableBase.cxx b/accessibility/source/extended/AccessibleBrowseBoxTableBase.cxx
index 1fa4cbe95f40..153ff855716a 100644
--- a/accessibility/source/extended/AccessibleBrowseBoxTableBase.cxx
+++ b/accessibility/source/extended/AccessibleBrowseBoxTableBase.cxx
@@ -55,8 +55,7 @@ AccessibleBrowseBoxTableBase::~AccessibleBrowseBoxTableBase()
sal_Int32 SAL_CALL AccessibleBrowseBoxTableBase::getAccessibleChildCount()
throw ( uno::RuntimeException, std::exception )
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
return implGetChildCount();
}
@@ -73,8 +72,7 @@ sal_Int16 SAL_CALL AccessibleBrowseBoxTableBase::getAccessibleRole()
sal_Int32 SAL_CALL AccessibleBrowseBoxTableBase::getAccessibleRowCount()
throw ( uno::RuntimeException, std::exception )
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
return implGetRowCount();
}
@@ -82,8 +80,7 @@ sal_Int32 SAL_CALL AccessibleBrowseBoxTableBase::getAccessibleRowCount()
sal_Int32 SAL_CALL AccessibleBrowseBoxTableBase::getAccessibleColumnCount()
throw ( uno::RuntimeException, std::exception )
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
return implGetColumnCount();
}
@@ -92,8 +89,7 @@ sal_Int32 SAL_CALL AccessibleBrowseBoxTableBase::getAccessibleRowExtentAt(
sal_Int32 nRow, sal_Int32 nColumn )
throw ( lang::IndexOutOfBoundsException, uno::RuntimeException, std::exception )
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
ensureIsValidAddress( nRow, nColumn );
return 1; // merged cells not supported
@@ -103,8 +99,7 @@ sal_Int32 SAL_CALL AccessibleBrowseBoxTableBase::getAccessibleColumnExtentAt(
sal_Int32 nRow, sal_Int32 nColumn )
throw ( lang::IndexOutOfBoundsException, uno::RuntimeException, std::exception )
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
ensureIsValidAddress( nRow, nColumn );
return 1; // merged cells not supported
@@ -128,8 +123,7 @@ sal_Int32 SAL_CALL AccessibleBrowseBoxTableBase::getAccessibleIndex(
sal_Int32 nRow, sal_Int32 nColumn )
throw ( lang::IndexOutOfBoundsException, uno::RuntimeException, std::exception )
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
ensureIsValidAddress( nRow, nColumn );
return nRow * implGetColumnCount() + nColumn;
@@ -138,8 +132,7 @@ sal_Int32 SAL_CALL AccessibleBrowseBoxTableBase::getAccessibleIndex(
sal_Int32 SAL_CALL AccessibleBrowseBoxTableBase::getAccessibleRow( sal_Int32 nChildIndex )
throw ( lang::IndexOutOfBoundsException, uno::RuntimeException, std::exception )
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
ensureIsValidIndex( nChildIndex );
return implGetRow( nChildIndex );
@@ -148,8 +141,7 @@ sal_Int32 SAL_CALL AccessibleBrowseBoxTableBase::getAccessibleRow( sal_Int32 nCh
sal_Int32 SAL_CALL AccessibleBrowseBoxTableBase::getAccessibleColumn( sal_Int32 nChildIndex )
throw ( lang::IndexOutOfBoundsException, uno::RuntimeException, std::exception )
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
ensureIsValidIndex( nChildIndex );
return implGetColumn( nChildIndex );
diff --git a/accessibility/source/extended/AccessibleBrowseBoxTableCell.cxx b/accessibility/source/extended/AccessibleBrowseBoxTableCell.cxx
index d6d8d1fce312..ce61700ed334 100644
--- a/accessibility/source/extended/AccessibleBrowseBoxTableCell.cxx
+++ b/accessibility/source/extended/AccessibleBrowseBoxTableCell.cxx
@@ -119,10 +119,9 @@ namespace accessibility
css::awt::Rectangle SAL_CALL AccessibleBrowseBoxTableCell::getCharacterBounds( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException, std::exception)
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
-
+ SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
+
if ( !implIsValidIndex( nIndex, implGetText().getLength() ) )
throw IndexOutOfBoundsException();
@@ -140,8 +139,7 @@ namespace accessibility
{
//! TODO CTL bidi
// OSL_FAIL("Need to be done by base class!");
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
return mpBrowseBox->GetFieldIndexAtPoint( getRowPos(), getColumnPos(), VCLPoint( _aPoint ) );
@@ -179,8 +177,7 @@ namespace accessibility
*/
::utl::AccessibleStateSetHelper* AccessibleBrowseBoxTableCell::implCreateStateSetHelper()
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
::utl::AccessibleStateSetHelper* pStateSetHelper = new ::utl::AccessibleStateSetHelper;
@@ -213,8 +210,7 @@ namespace accessibility
sal_Int32 SAL_CALL AccessibleBrowseBoxTableCell::getAccessibleIndexInParent()
throw ( css::uno::RuntimeException, std::exception )
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
return /*BBINDEX_FIRSTCONTROL*/ m_nOffset + ( getRowPos() * mpBrowseBox->GetColumnCount() ) + getColumnPos();
@@ -224,10 +220,10 @@ namespace accessibility
{
return -1;
}
+
sal_Bool SAL_CALL AccessibleBrowseBoxTableCell::setCaretPosition ( sal_Int32 nIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception)
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
if ( !implIsValidRange( nIndex, nIndex, implGetText().getLength() ) )
throw IndexOutOfBoundsException();
@@ -236,14 +232,13 @@ namespace accessibility
}
sal_Unicode SAL_CALL AccessibleBrowseBoxTableCell::getCharacter( sal_Int32 nIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception)
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
+
return OCommonAccessibleText::getCharacter( nIndex );
}
css::uno::Sequence< css::beans::PropertyValue > SAL_CALL AccessibleBrowseBoxTableCell::getCharacterAttributes( sal_Int32 nIndex, const css::uno::Sequence< OUString >& ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception)
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
OUString sText( implGetText() );
@@ -254,33 +249,33 @@ namespace accessibility
}
sal_Int32 SAL_CALL AccessibleBrowseBoxTableCell::getCharacterCount( ) throw (css::uno::RuntimeException, std::exception)
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
+
return OCommonAccessibleText::getCharacterCount( );
}
OUString SAL_CALL AccessibleBrowseBoxTableCell::getSelectedText( ) throw (css::uno::RuntimeException, std::exception)
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
+
return OCommonAccessibleText::getSelectedText( );
}
sal_Int32 SAL_CALL AccessibleBrowseBoxTableCell::getSelectionStart( ) throw (css::uno::RuntimeException, std::exception)
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
+
return OCommonAccessibleText::getSelectionStart( );
}
sal_Int32 SAL_CALL AccessibleBrowseBoxTableCell::getSelectionEnd( ) throw (css::uno::RuntimeException, std::exception)
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
+
return OCommonAccessibleText::getSelectionEnd( );
}
sal_Bool SAL_CALL AccessibleBrowseBoxTableCell::setSelection( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception)
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
+
if ( !implIsValidRange( nStartIndex, nEndIndex, implGetText().getLength() ) )
throw IndexOutOfBoundsException();
@@ -288,38 +283,38 @@ namespace accessibility
}
OUString SAL_CALL AccessibleBrowseBoxTableCell::getText( ) throw (css::uno::RuntimeException, std::exception)
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
+
return OCommonAccessibleText::getText( );
}
OUString SAL_CALL AccessibleBrowseBoxTableCell::getTextRange( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception)
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
+
return OCommonAccessibleText::getTextRange( nStartIndex, nEndIndex );
}
css::accessibility::TextSegment SAL_CALL AccessibleBrowseBoxTableCell::getTextAtIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (css::lang::IndexOutOfBoundsException, css::lang::IllegalArgumentException, css::uno::RuntimeException, std::exception)
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
+
return OCommonAccessibleText::getTextAtIndex( nIndex ,aTextType);
}
css::accessibility::TextSegment SAL_CALL AccessibleBrowseBoxTableCell::getTextBeforeIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (css::lang::IndexOutOfBoundsException, css::lang::IllegalArgumentException, css::uno::RuntimeException, std::exception)
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
+
return OCommonAccessibleText::getTextBeforeIndex( nIndex ,aTextType);
}
css::accessibility::TextSegment SAL_CALL AccessibleBrowseBoxTableCell::getTextBehindIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (css::lang::IndexOutOfBoundsException, css::lang::IllegalArgumentException, css::uno::RuntimeException, std::exception)
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
+
return OCommonAccessibleText::getTextBehindIndex( nIndex ,aTextType);
}
sal_Bool SAL_CALL AccessibleBrowseBoxTableCell::copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception)
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
+
OUString sText = implGetText();
checkIndex_Impl( nStartIndex, sText );
checkIndex_Impl( nEndIndex, sText );
diff --git a/accessibility/source/extended/accessiblebrowseboxcell.cxx b/accessibility/source/extended/accessiblebrowseboxcell.cxx
index feaa074f214b..576f00816192 100644
--- a/accessibility/source/extended/accessiblebrowseboxcell.cxx
+++ b/accessibility/source/extended/accessiblebrowseboxcell.cxx
@@ -50,7 +50,9 @@ namespace accessibility
void SAL_CALL AccessibleBrowseBoxCell::grabFocus() throw ( RuntimeException, std::exception )
{
- SolarMethodGuard aGuard( *this );
+ SolarMethodGuard aGuard(getMutex());
+ ensureIsAlive();
+
mpBrowseBox->GoToCell( m_nRowPos, m_nColPos );
}
diff --git a/accessibility/source/extended/accessibleeditbrowseboxcell.cxx b/accessibility/source/extended/accessibleeditbrowseboxcell.cxx
index d816176d8347..2ce764c93ee2 100644
--- a/accessibility/source/extended/accessibleeditbrowseboxcell.cxx
+++ b/accessibility/source/extended/accessibleeditbrowseboxcell.cxx
@@ -75,7 +75,9 @@ namespace accessibility
// css::accessibility::XAccessibleComponent
sal_Int32 SAL_CALL EditBrowseBoxTableCell::getForeground( ) throw (RuntimeException, std::exception)
{
- SolarMethodGuard aGuard( *this );
+ SolarMethodGuard aGuard(getMutex());
+ ensureIsAlive();
+
css::uno::Reference< css::accessibility::XAccessibleComponent > xAccComp( m_xInnerContext, UNO_QUERY );
if ( xAccComp.is() )
return xAccComp->getForeground();
@@ -84,7 +86,9 @@ namespace accessibility
sal_Int32 SAL_CALL EditBrowseBoxTableCell::getBackground( ) throw (RuntimeException, std::exception)
{
- SolarMethodGuard aGuard( *this );
+ SolarMethodGuard aGuard(getMutex());
+ ensureIsAlive();
+
css::uno::Reference< css::accessibility::XAccessibleComponent > xAccComp( m_xInnerContext, UNO_QUERY );
if ( xAccComp.is() )
return xAccComp->getBackground();
@@ -98,13 +102,16 @@ namespace accessibility
OUString SAL_CALL EditBrowseBoxTableCell::getAccessibleDescription() throw ( RuntimeException, std::exception )
{
- SolarMethodGuard aGuard( *this );
+ SolarMethodGuard aGuard(getMutex());
+ ensureIsAlive();
+
return m_xInnerContext->getAccessibleDescription();
}
OUString SAL_CALL EditBrowseBoxTableCell::getAccessibleName() throw ( RuntimeException, std::exception )
{
- SolarMethodGuard aGuard( *this );
+ SolarMethodGuard aGuard(getMutex());
+ ensureIsAlive();
return TK_RES_STRING(RID_STR_ACC_COLUMN_NUM).replaceAll("%COLUMNNUMBER", OUString::number(getColumnPos()-1)) + ", "
+ TK_RES_STRING(RID_STR_ACC_ROW_NUM).replaceAll("%ROWNUMBER", OUString::number(getRowPos()));
@@ -112,32 +119,42 @@ namespace accessibility
css::uno::Reference< css::accessibility::XAccessibleRelationSet > SAL_CALL EditBrowseBoxTableCell::getAccessibleRelationSet() throw ( RuntimeException, std::exception )
{
- SolarMethodGuard aGuard( *this );
+ SolarMethodGuard aGuard(getMutex());
+ ensureIsAlive();
+
return baseGetAccessibleRelationSet( );
}
css::uno::Reference<css::accessibility::XAccessibleStateSet > SAL_CALL EditBrowseBoxTableCell::getAccessibleStateSet() throw ( RuntimeException, std::exception )
{
- SolarMethodGuard aGuard( *this );
+ SolarMethodGuard aGuard(getMutex());
+ ensureIsAlive();
+
return m_xInnerContext->getAccessibleStateSet();
// TODO: shouldn't we add an ACTIVE here? Isn't the EditBrowseBoxTableCell always ACTIVE?
}
sal_Int32 SAL_CALL EditBrowseBoxTableCell::getAccessibleChildCount( ) throw (RuntimeException, std::exception)
{
- SolarMethodGuard aGuard( *this );
+ SolarMethodGuard aGuard(getMutex());
+ ensureIsAlive();
+
return baseGetAccessibleChildCount();
}
css::uno::Reference< css::accessibility::XAccessible > SAL_CALL EditBrowseBoxTableCell::getAccessibleChild( sal_Int32 i ) throw (css::lang::IndexOutOfBoundsException, RuntimeException, std::exception)
{
- SolarMethodGuard aGuard( *this );
+ SolarMethodGuard aGuard(getMutex());
+ ensureIsAlive();
+
return baseGetAccessibleChild( i );
}
sal_Int16 SAL_CALL EditBrowseBoxTableCell::getAccessibleRole() throw ( RuntimeException, std::exception )
{
- SolarMethodGuard aGuard( *this );
+ SolarMethodGuard aGuard(getMutex());
+ ensureIsAlive();
+
return m_xInnerContext->getAccessibleRole( );
}
@@ -157,7 +174,8 @@ namespace accessibility
void SAL_CALL EditBrowseBoxTableCell::disposing()
{
- SolarMethodGuard aGuard( *this, false );
+ SolarMethodGuard aGuard(getMutex());
+
OAccessibleContextWrapperHelper::dispose();
// TODO: do we need to dispose our inner object? The base class does this, but is it a good idea?
AccessibleBrowseBoxCell::disposing();
diff --git a/accessibility/source/extended/accessibletablistbox.cxx b/accessibility/source/extended/accessibletablistbox.cxx
index 4437291a84d1..5f7824d190cb 100644
--- a/accessibility/source/extended/accessibletablistbox.cxx
+++ b/accessibility/source/extended/accessibletablistbox.cxx
@@ -91,8 +91,7 @@ namespace accessibility
AccessibleTabListBox::getAccessibleChild( sal_Int32 nChildIndex )
throw ( IndexOutOfBoundsException, RuntimeException, std::exception )
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( getMutex() );
+ SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
if ( nChildIndex < 0 || nChildIndex > 1 )