accessibility/source/extended/AccessibleBrowseBoxBase.cxx         |    3 +++
 accessibility/source/extended/AccessibleBrowseBoxCheckBoxCell.cxx |    1 +
 accessibility/source/extended/AccessibleBrowseBoxHeaderBar.cxx    |    6 ++++++
 accessibility/source/extended/AccessibleBrowseBoxTable.cxx        |    1 +
 accessibility/source/extended/AccessibleBrowseBoxTableBase.cxx    |    1 +
 accessibility/source/extended/AccessibleBrowseBoxTableCell.cxx    |    1 +
 6 files changed, 13 insertions(+)

New commits:
commit 2877aa089d9185ff25dbe8f9920611277750d5c8
Author: Arnaud Versini <[email protected]>
Date:   Sun Nov 19 19:23:10 2017 +0100

    accessibility : AccessibleBrowseBoxBase::isAlive is not thread safe
    
    Change-Id: I243328a662bf37944e1fa718f63a0e509250db15
    Reviewed-on: https://gerrit.libreoffice.org/44930
    Tested-by: Jenkins <[email protected]>
    Reviewed-by: Noel Grandin <[email protected]>

diff --git a/accessibility/source/extended/AccessibleBrowseBoxBase.cxx 
b/accessibility/source/extended/AccessibleBrowseBoxBase.cxx
index 1467c8335a4a..904e0846d8e2 100644
--- a/accessibility/source/extended/AccessibleBrowseBoxBase.cxx
+++ b/accessibility/source/extended/AccessibleBrowseBoxBase.cxx
@@ -175,6 +175,7 @@ OUString SAL_CALL 
AccessibleBrowseBoxBase::getAccessibleName()
 Reference< css::accessibility::XAccessibleRelationSet > SAL_CALL
 AccessibleBrowseBoxBase::getAccessibleRelationSet()
 {
+    ::osl::MutexGuard aGuard( getMutex() );
     ensureIsAlive();
     // BrowseBox does not have relations.
        return new utl::AccessibleRelationSetHelper;
@@ -433,6 +434,7 @@ void AccessibleBrowseBoxBase::commitEvent(
 
 sal_Int16 SAL_CALL AccessibleBrowseBoxBase::getAccessibleRole()
 {
+    osl::MutexGuard aGuard( getMutex() );
     ensureIsAlive();
     sal_Int16 nRole = AccessibleRole::UNKNOWN;
     switch ( meObjType )
@@ -525,6 +527,7 @@ IMPLEMENT_FORWARD_XTYPEPROVIDER2( 
BrowseBoxAccessibleElement, AccessibleBrowseBo
 
 Reference< css::accessibility::XAccessibleContext > SAL_CALL 
BrowseBoxAccessibleElement::getAccessibleContext()
 {
+    osl::MutexGuard aGuard( getMutex() );
     ensureIsAlive();
     return this;
 }
diff --git a/accessibility/source/extended/AccessibleBrowseBoxCheckBoxCell.cxx 
b/accessibility/source/extended/AccessibleBrowseBoxCheckBoxCell.cxx
index d23340a2a07f..762728a934b3 100644
--- a/accessibility/source/extended/AccessibleBrowseBoxCheckBoxCell.cxx
+++ b/accessibility/source/extended/AccessibleBrowseBoxCheckBoxCell.cxx
@@ -46,6 +46,7 @@ namespace accessibility
 
     Reference< XAccessibleContext > SAL_CALL 
AccessibleCheckBoxCell::getAccessibleContext(  )
     {
+        osl::MutexGuard aGuard( getMutex() );
         ensureIsAlive();
         return this;
     }
diff --git a/accessibility/source/extended/AccessibleBrowseBoxHeaderBar.cxx 
b/accessibility/source/extended/AccessibleBrowseBoxHeaderBar.cxx
index 72a4c2d3397b..4497a93f496a 100644
--- a/accessibility/source/extended/AccessibleBrowseBoxHeaderBar.cxx
+++ b/accessibility/source/extended/AccessibleBrowseBoxHeaderBar.cxx
@@ -86,6 +86,8 @@ AccessibleBrowseBoxHeaderBar::getAccessibleAtPoint( const 
awt::Point& rPoint )
 
 void SAL_CALL AccessibleBrowseBoxHeaderBar::grabFocus()
 {
+    SolarMethodGuard aGuard(getMutex());
+
     ensureIsAlive();
     // focus on header not supported
 }
@@ -112,12 +114,16 @@ OUString SAL_CALL 
AccessibleBrowseBoxHeaderBar::getAccessibleColumnDescription(
 
 Reference< XAccessibleTable > SAL_CALL 
AccessibleBrowseBoxHeaderBar::getAccessibleRowHeaders()
 {
+    SolarMethodGuard aGuard(getMutex());
+
     ensureIsAlive();
     return nullptr;        // no headers in headers
 }
 
 Reference< XAccessibleTable > SAL_CALL 
AccessibleBrowseBoxHeaderBar::getAccessibleColumnHeaders()
 {
+   SolarMethodGuard aGuard(getMutex());
+
     ensureIsAlive();
     return nullptr;        // no headers in headers
 }
diff --git a/accessibility/source/extended/AccessibleBrowseBoxTable.cxx 
b/accessibility/source/extended/AccessibleBrowseBoxTable.cxx
index 08d2ce5fe4fe..40ce9340127d 100644
--- a/accessibility/source/extended/AccessibleBrowseBoxTable.cxx
+++ b/accessibility/source/extended/AccessibleBrowseBoxTable.cxx
@@ -60,6 +60,7 @@ AccessibleBrowseBoxTable::getAccessibleChild( sal_Int32 
nChildIndex )
 
 sal_Int32 SAL_CALL AccessibleBrowseBoxTable::getAccessibleIndexInParent()
 {
+    osl::MutexGuard aGuard( getMutex() );
     ensureIsAlive();
     return BBINDEX_TABLE;
 }
diff --git a/accessibility/source/extended/AccessibleBrowseBoxTableBase.cxx 
b/accessibility/source/extended/AccessibleBrowseBoxTableBase.cxx
index 692d45e70750..160abb9f138b 100644
--- a/accessibility/source/extended/AccessibleBrowseBoxTableBase.cxx
+++ b/accessibility/source/extended/AccessibleBrowseBoxTableBase.cxx
@@ -61,6 +61,7 @@ sal_Int32 SAL_CALL 
AccessibleBrowseBoxTableBase::getAccessibleChildCount()
 
 sal_Int16 SAL_CALL AccessibleBrowseBoxTableBase::getAccessibleRole()
 {
+    osl::MutexGuard aGuard( getMutex() );
     ensureIsAlive();
     return AccessibleRole::TABLE;
 }
diff --git a/accessibility/source/extended/AccessibleBrowseBoxTableCell.cxx 
b/accessibility/source/extended/AccessibleBrowseBoxTableCell.cxx
index 69f163e05393..b267baf51163 100644
--- a/accessibility/source/extended/AccessibleBrowseBoxTableCell.cxx
+++ b/accessibility/source/extended/AccessibleBrowseBoxTableCell.cxx
@@ -197,6 +197,7 @@ namespace accessibility
     /** @return  The XAccessibleContext interface of this object. */
     Reference< XAccessibleContext > SAL_CALL 
AccessibleBrowseBoxTableCell::getAccessibleContext()
     {
+        osl::MutexGuard aGuard( getMutex() );
         ensureIsAlive();
         return this;
     }
_______________________________________________
Libreoffice-commits mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to