vcl/unx/gtk3/a11y/atkwrapper.cxx |    5 +++++
 1 file changed, 5 insertions(+)

New commits:
commit 5f3de2ba23486184f5ba8e1efa76a02afb20a42a
Author:     Caolán McNamara <caol...@redhat.com>
AuthorDate: Fri Nov 11 16:52:33 2022 +0000
Commit:     Michael Stahl <michael.st...@allotropia.de>
CommitDate: Tue Nov 15 11:11:42 2022 +0100

    ImplDbgTestSolarMutex assert from a11y
    
     #5  0x00007fffee605ea2 in ImplDbgTestSolarMutex() () at 
vcl/source/app/dbggui.cxx:35
     #6  0x00007ffff71186f0 in DbgTestSolarMutex() () at 
tools/source/debug/debug.cxx:54
     #7  0x00007fffa95614d8 in SwAccessibleMap::GetContext(SwFrame const*, 
bool) (this=0x895a9c0, pFrame=0x5358800, bCreate=false) at 
sw/source/core/access/accmap.cxx:1788
     #8  0x00007fffa961ac0e in sw::sidebarwindows::(anonymous 
namespace)::SidebarWinAccessibleContext::getAccessibleParent() (this=0xb90f800)
         at sw/source/uibase/docvw/SidebarWinAcc.cxx:65
     #9  0x00007fffa961ae27 in non-virtual thunk to 
sw::sidebarwindows::(anonymous 
namespace)::SidebarWinAccessibleContext::getAccessibleParent() ()
         at /home/caolan/LibreOffice/core/instdir/program/../program/libswlo.so
     #10 0x00007fffd8f4ae7d in 
atk_object_wrapper_new(com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessible>
 const&, AtkObject*, AtkObject*)
         (rxAccessible=uno::Reference to 
(sw::sidebarwindows::SidebarWinAccessible *) 0xba7f450, parent=0x0, orig=0x0) 
at vcl/unx/gtk3/a11y/atkwrapper.cxx:970
     #11 0x00007fffd8f4a820 in 
atk_object_wrapper_ref(com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessible>
 const&, bool)
         (rxAccessible=uno::Reference to 
(sw::sidebarwindows::SidebarWinAccessible *) 0xba7f450, create=true) at 
vcl/unx/gtk3/a11y/atkwrapper.cxx:925
     #12 0x00007fffd8f4d246 in wrapper_ref_child(_AtkObject*, int) 
(atk_obj=0xb9d06f0, i=0) at vcl/unx/gtk3/a11y/atkwrapper.cxx:500
     #13 0x00007fffd95700c3 in add_pending_items () at 
/lib64/libatk-bridge-2.0.so.0
     #14 0x00007fffea7154cb in g_idle_dispatch (source=0x21d40e0, 
callback=0x7fffd956fec0 <add_pending_items>, user_data=0x21d5890) at 
../glib/gmain.c:5935
    
    and...
    
     #5  0x00007fffee605ea2 in ImplDbgTestSolarMutex() () at 
vcl/source/app/dbggui.cxx:35
     #6  0x00007ffff71186f0 in DbgTestSolarMutex() () at 
tools/source/debug/debug.cxx:54
     #7  0x00007fffa95614d8 in SwAccessibleMap::GetContext(SwFrame const*, 
bool) (this=0x894ce20, pFrame=0x53390f0, bCreate=false) at 
sw/source/core/access/accmap.cxx:1788
     #8  0x00007fffa956285f in SwAccessibleMap::GetContextImpl(SwFrame const*, 
bool) (this=0x894ce20, pFrame=0x53390f0, bCreate=false) at 
sw/source/core/access/accmap.cxx:1917
     #9  0x00007fffa9550a91 in 
SwAccessibleChildSList_const_iterator::SwAccessibleChildSList_const_iterator(SwAccessibleChildSList
 const&, SwAccessibleMap&)
         (this=0x7fffffffbb58, rLst=..., rAccMap=...) at 
sw/source/core/access/accfrmobjslist.cxx:65
     #10 0x00007fffa951c507 in SwAccessibleChildSList::begin() const 
(this=0x7fffffffbb80) at sw/source/core/access/accfrmobjslist.hxx:100
     #11 0x00007fffa95421c2 in 
SwAccessibleFrame::GetChildIndex(SwAccessibleMap&, SwRect const&, SwFrame 
const&, sw::access::SwAccessibleChild const&, int&, bool)
         (rAccMap=..., rVisArea=SwRect = {...}, rFrame=..., rChild=..., 
rPos=@0x7fffffffbcc4: 0, bInPagePreview=false) at 
sw/source/core/access/accframe.cxx:179
     #12 0x00007fffa9543be5 in 
SwAccessibleFrame::GetChildIndex(SwAccessibleMap&, 
sw::access::SwAccessibleChild const&) const (this=0xb7bd6e0, rAccMap=..., 
rChild=...)
         at sw/source/core/access/accframe.cxx:455
     #13 0x00007fffa9569721 in SwAccessibleMap::GetChildIndex(SwFrame const&, 
vcl::Window&) const (this=0x894ce20, rParentFrame=..., rChild=...)
         at sw/source/core/access/accmap.cxx:2905
     #14 0x00007fffa961ad89 in sw::sidebarwindows::(anonymous 
namespace)::SidebarWinAccessibleContext::getAccessibleIndexInParent() 
(this=0xb9ead70)
         at sw/source/uibase/docvw/SidebarWinAcc.cxx:80
     #15 0x00007fffd8f4d781 in wrapper_get_index_in_parent(_AtkObject*) 
(atk_obj=0xc517810) at vcl/unx/gtk3/a11y/atkwrapper.cxx:529
     #16 0x00007fffd957298c in append_cache_item () at 
/lib64/libatk-bridge-2.0.so.0
    
    Change-Id: I852f40f30be7c10223ccfd570cb8ca30f1a67f47
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142625
    Tested-by: Jenkins
    Reviewed-by: Michael Stahl <michael.st...@allotropia.de>

diff --git a/vcl/unx/gtk3/a11y/atkwrapper.cxx b/vcl/unx/gtk3/a11y/atkwrapper.cxx
index bc493561b1ce..b1e4c4479e80 100644
--- a/vcl/unx/gtk3/a11y/atkwrapper.cxx
+++ b/vcl/unx/gtk3/a11y/atkwrapper.cxx
@@ -47,6 +47,7 @@
 #include <tools/diagnose_ex.h>
 #include <vcl/syschild.hxx>
 #include <vcl/sysdata.hxx>
+#include <vcl/svapp.hxx>
 #include <vcl/toolkit/unowrap.hxx>
 
 #include "atkwrapper.hxx"
@@ -466,6 +467,8 @@ static AtkObject *
 wrapper_ref_child( AtkObject *atk_obj,
                    gint       i )
 {
+    SolarMutexGuard aGuard;
+
     AtkObjectWrapper *obj = ATK_OBJECT_WRAPPER (atk_obj);
 
     if (obj->mpSysObjChild)
@@ -504,6 +507,8 @@ wrapper_ref_child( AtkObject *atk_obj,
 static gint
 wrapper_get_index_in_parent( AtkObject *atk_obj )
 {
+    SolarMutexGuard aGuard;
+
     AtkObjectWrapper *obj = ATK_OBJECT_WRAPPER (atk_obj);
 
     //if we're a native GtkDrawingArea with custom a11y, use the default 
toolkit a11y

Reply via email to