vcl/qt5/Qt5Widget.cxx |    1 +
 1 file changed, 1 insertion(+)

New commits:
commit d60eb4b7458454dde25a51eeeda0d545c9cf7957
Author:     Michael Weghorn <m.wegh...@posteo.de>
AuthorDate: Sat Jun 8 12:34:24 2019 +0200
Commit:     Jan-Marek Glogowski <glo...@fbihome.de>
CommitDate: Sun Jun 9 04:13:09 2019 +0200

    Qt5Widget: lcl_retrieveSurrounding needs SolarMutex
    
    Otherwise
    
    * starting Writer
    * "File" -> "New" -> "Spreadsheet"
    * switching back to Writer window using Alt+Tab
    
    in Plasma Wayland session results in
    
        Thread 1 "soffice.bin" received signal SIGABRT, Aborted.
        __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
        50      ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
        (gdb) bt
        #0  0x00007ffff7b287bb in __GI_raise (sig=sig@entry=6) at 
../sysdeps/unix/sysv/linux/raise.c:50
        #1  0x00007ffff7b13535 in __GI_abort () at abort.c:79
        #2  0x00007ffff7b1340f in __assert_fail_base
            (fmt=0x7ffff7c75ee0 "%s%s%s:%u: %s%sAssertion `%s' failed.
    %n", assertion=0x7ffff14b0410 
"ImplGetSVData()->mpDefInst->GetYieldMutex()->IsCurrentThread() && \"SolarMutex 
not owned!\"", file=0x7ffff14b03d0 
"/mnt/data/development/git/libreoffice/vcl/source/app/dbggui.cxx", line=46, 
function=<optimized out>) at assert.c:92
        #3  0x00007ffff7b21102 in __GI___assert_fail
            (assertion=0x7ffff14b0410 
"ImplGetSVData()->mpDefInst->GetYieldMutex()->IsCurrentThread() && \"SolarMutex 
not owned!\"", file=0x7ffff14b03d0 
"/mnt/data/development/git/libreoffice/vcl/source/app/dbggui.cxx", line=46, 
function=0x7ffff14b0470 <ImplDbgTestSolarMutex()::__PRETTY_FUNCTION__> "void 
ImplDbgTestSolarMutex()") at assert.c:101
        #4  0x00007ffff0e495db in ImplDbgTestSolarMutex() () at 
/mnt/data/development/git/libreoffice/vcl/source/app/dbggui.cxx:46
        #5  0x00007ffff2026c2f in DbgTestSolarMutex() () at 
/mnt/data/development/git/libreoffice/tools/source/debug/debug.cxx:91
        #6  0x00007ffff4eea765 in SfxBroadcaster::AddListener(SfxListener&) 
(this=0x555558e61620, rListener=...) at 
/mnt/data/development/git/libreoffice/svl/source/notify/SfxBroadcaster.cxx:94
        #7  0x00007ffff4effe4e in SfxListener::StartListening(SfxBroadcaster&, 
DuplicateHandling) (this=0x55555a1ebe50, rBroadcaster=..., 
eDuplicateHanding=DuplicateHandling::Unexpected) at 
/mnt/data/development/git/libreoffice/svl/source/notify/lstner.cxx:104
        #8  0x00007fffbfdff188 in 
ScTabViewShell::AddAccessibilityObject(SfxListener&) (this=0x555558c27080, 
rObject=...) at 
/mnt/data/development/git/libreoffice/sc/source/ui/view/tabvwshh.cxx:215
        #9  0x00007fffbf65754a in ScAccessibleDocument::PreInit() 
(this=0x55555a1ebdb0) at 
/mnt/data/development/git/libreoffice/sc/source/ui/Accessibility/AccessibleDocument.cxx:1303
        #10 0x00007fffbfd12754 in ScGridWindow::CreateAccessible() 
(this=0x555558c2dd50) at 
/mnt/data/development/git/libreoffice/sc/source/ui/view/gridwin5.cxx:443
        #11 0x00007ffff06ef948 in vcl::Window::GetAccessible(bool) 
(this=0x555558c2dd50, bCreate=true) at 
/mnt/data/development/git/libreoffice/vcl/source/window/accessibility.cxx:129
        #12 0x00007fffe730f9c6 in lcl_retrieveSurrounding(sal_Int32&, 
sal_Int32&, QString*, QString*) (rPosition=@0x7fffffffcb90: -12560, 
rAnchor=@0x7fffffffcba0: -13392, pText=0x0, pSelection=0x0) at 
/mnt/data/development/git/libreoffice/vcl/qt5/Qt5Widget.cxx:598
        #13 0x00007fffe730ff17 in 
Qt5Widget::inputMethodQuery(Qt::InputMethodQuery) const (this=0x555556c50ec0, 
property=Qt::ImCursorPosition) at 
/mnt/data/development/git/libreoffice/vcl/qt5/Qt5Widget.cxx:656
        #14 0x00007fffe786c7f7 in QWidget::event(QEvent*) (this=0x555556c50ec0, 
event=0x7fffffffcef0) at kernel/qwidget.cpp:8993
        #15 0x00007fffe730f0d3 in Qt5Widget::event(QEvent*) 
(this=0x555556c50ec0, pEvent=0x7fffffffcef0) at 
/mnt/data/development/git/libreoffice/vcl/qt5/Qt5Widget.cxx:466
        #16 0x00007fffe782e4b1 in QApplicationPrivate::notify_helper(QObject*, 
QEvent*) (this=this@entry=0x5555556480f0, 
receiver=receiver@entry=0x555556c50ec0, e=e@entry=0x7fffffffcef0) at 
kernel/qapplication.cpp:3726
        #17 0x00007fffe7835950 in QApplication::notify(QObject*, QEvent*) 
(this=0x555555647fe0, receiver=0x555556c50ec0, e=0x7fffffffcef0) at 
kernel/qapplication.cpp:3485
        #18 0x00007fffe851b5a9 in QCoreApplication::notifyInternal2(QObject*, 
QEvent*) (receiver=0x555556c50ec0, event=event@entry=0x7fffffffcef0) at 
../../include/QtCore/5.11.3/QtCore/private/../../../../../src/corelib/thread/qthread_p.h:307
        #19 0x00007fffe5bdbf6a in QCoreApplication::sendEvent(QObject*, 
QEvent*) (event=0x7fffffffcef0, receiver=<optimized out>) at 
/usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h:234
        #20 0x00007fffe5bdbf6a in 
QtWaylandClient::QWaylandTextInput::updateState(QFlags<Qt::InputMethodQuery>, 
unsigned int) (this=0x555555655ab0, queries=..., flags=2) at 
qwaylandinputcontext.cpp:134
        #21 0x00007fffe5bdc433 in QtWaylandClient::QWaylandTextInput::commit() 
(this=0x555555655ab0) at qwaylandinputcontext.cpp:98
        #22 0x00007fffe5bdc4b9 in 
QtWaylandClient::QWaylandInputContext::commit() (this=0x555555652300) at 
qwaylandinputcontext.cpp:544
        #23 0x00007fffe5bdc4b9 in 
QtWaylandClient::QWaylandInputContext::commit() (this=0x555555652300) at 
qwaylandinputcontext.cpp:410
        #24 0x00007fffe7833aa5 in QApplication::setActiveWindow(QWidget*) 
(act=act@entry=0x555556f29a60) at kernel/qapplication.cpp:2088
        #25 0x00007fffe7833b53 in 
QApplicationPrivate::notifyActiveWindowChange(QWindow*) (this=<optimized out>, 
previous=<optimized out>) at kernel/qapplication.cpp:2182
        #26 0x00007fffe7e42ce5 in 
QGuiApplicationPrivate::processActivatedEvent(QWindowSystemInterfacePrivate::ActivatedWindowEvent*)
 (e=<optimized out>) at kernel/qguiapplication.cpp:2292
        #27 0x00007fffe7e42f1d in 
QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*)
 (e=e@entry=0x555559c186d0) at kernel/qguiapplication.cpp:1838
        #28 0x00007fffe7e1d06b in 
QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>)
 (flags=...) at kernel/qwindowsysteminterface.cpp:1032
        #29 0x00007fffe5bfc6cb in 
QPAEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () 
at /usr/lib/x86_64-linux-gnu/libQt5WaylandClient.so.5
        #30 0x00007fffe72e9d7d in Qt5Instance::ImplYield(bool, bool) 
(this=0x5555556c46a0, bWait=true, bHandleAllCurrentEvents=false) at 
/mnt/data/development/git/libreoffice/vcl/qt5/Qt5Instance.cxx:345
        #31 0x00007fffe72e9e8d in Qt5Instance::DoYield(bool, bool) 
(this=0x5555556c46a0, bWait=true, bHandleAllCurrentEvents=false) at 
/mnt/data/development/git/libreoffice/vcl/qt5/Qt5Instance.cxx:356
        #32 0x00007ffff0ec1a66 in ImplYield(bool, bool) (i_bWait=true, 
i_bAllEvents=false) at 
/mnt/data/development/git/libreoffice/vcl/source/app/svapp.cxx:457
        #33 0x00007ffff0ec1f89 in Application::Yield() () at 
/mnt/data/development/git/libreoffice/vcl/source/app/svapp.cxx:521
        #34 0x00007ffff0ec185e in Application::Execute() () at 
/mnt/data/development/git/libreoffice/vcl/source/app/svapp.cxx:438
        #35 0x00007ffff7d3dfea in desktop::Desktop::Main() 
(this=0x7fffffffda80) at 
/mnt/data/development/git/libreoffice/desktop/source/app/app.cxx:1621
        #36 0x00007ffff0edc6c9 in ImplSVMain() () at 
/mnt/data/development/git/libreoffice/vcl/source/app/svmain.cxx:203
        #37 0x00007ffff0edc7ee in SVMain() () at 
/mnt/data/development/git/libreoffice/vcl/source/app/svmain.cxx:237
        #38 0x00007ffff7d977a9 in soffice_main() () at 
/mnt/data/development/git/libreoffice/desktop/source/app/sofficemain.cxx:170
        #39 0x000055555555495d in sal_main () at 
/mnt/data/development/git/libreoffice/desktop/source/app/main.c:48
        #40 0x0000555555554943 in main (argc=2, argv=0x7fffffffddd8) at 
/mnt/data/development/git/libreoffice/desktop/source/app/main.c:47
    
    Change-Id: I40bf501d07dde0c4610496aa1b2bb2a4051fdf2d
    Reviewed-on: https://gerrit.libreoffice.org/73696
    Reviewed-by: Jan-Marek Glogowski <glo...@fbihome.de>
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <m.wegh...@posteo.de>
    (cherry picked from commit 87238627b025ee6aa61378667e56b1769d4460c2)
    Reviewed-on: https://gerrit.libreoffice.org/73725

diff --git a/vcl/qt5/Qt5Widget.cxx b/vcl/qt5/Qt5Widget.cxx
index 4b378cd44cb2..27ce382cb349 100644
--- a/vcl/qt5/Qt5Widget.cxx
+++ b/vcl/qt5/Qt5Widget.cxx
@@ -588,6 +588,7 @@ void Qt5Widget::inputMethodEvent(QInputMethodEvent* pEvent)
 static bool lcl_retrieveSurrounding(sal_Int32& rPosition, sal_Int32& rAnchor, 
QString* pText,
                                     QString* pSelection)
 {
+    SolarMutexGuard aGuard;
     vcl::Window* pFocusWin = Application::GetFocusWindow();
     if (!pFocusWin)
         return false;
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to