Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-108226

quickwidget example crash in QAccessibleQuickWindow / QMacAccessibilityElement

    XMLWordPrintable

Details

    • macOS
    • 645aaa25b (dev), ddd9131a9 (6.5), dac453a5e (dev), 1b9953be4 (6.5)

    Description

      • Run examples/quick/quickwidgets/quickwidget,
      • choose Window->Add tab widget from the menu bar,
      • click 'Break out to top-level window',
      • then in the newly appearing window click 'Move back to under tab widget'.

      Seem to crash with the following on macOS 13 with qtbase/qtdeclarative dev from 5. Nov. At first glance perhaps this has something to do with accessibility (and its interaction with QQuickWidget's invisible QQuickWindow?) since there is accessibilityHitTest and such in the stack trace:

      Process 22344 stopped
      * thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x8)
          frame #0: 0x0000000101d3385c libQt6Quick.6.dylib`QQuickWindow::contentItem() const [inlined] QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::get(this=0x0000000000000008) const at qscopedpointer.h:111:16 [opt]
         108 	
         109 	    T *get() const noexcept
         110 	    {
      -> 111 	        return d;
         112 	    }
         113 	
         114 	    bool isNull() const noexcept
      Target 0: (quickwidget) stopped.
      warning: libQt6Quick.6.dylib was compiled with optimization - stepping may behave oddly; variables may not be available.
      (lldb) bt
      * thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x8)
        * frame #0: 0x0000000101d3385c libQt6Quick.6.dylib`QQuickWindow::contentItem() const [inlined] QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::get(this=0x0000000000000008) const at qscopedpointer.h:111:16 [opt]
          frame #1: 0x0000000101d3385c libQt6Quick.6.dylib`QQuickWindow::contentItem() const [inlined] decltype(ptr=0x0000000000000008)) qGetPtrHelper<QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> > const>(QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> > const&) at qtclasshelpermacros.h:79:117 [opt]
          frame #2: 0x0000000101d3385c libQt6Quick.6.dylib`QQuickWindow::contentItem() const [inlined] QQuickWindow::d_func(this=0x0000000000000000) const at qquickwindow.h:48:5 [opt]
          frame #3: 0x0000000101d3385c libQt6Quick.6.dylib`QQuickWindow::contentItem(this=0x0000000000000000) const at qquickwindow.cpp:1300:5 [opt]
          frame #4: 0x0000000101ea1f1c libQt6Quick.6.dylib`QAccessibleQuickWindow::childCount() const at qaccessiblequickview.cpp:24:36 [opt]
          frame #5: 0x0000000101ea1f0c libQt6Quick.6.dylib`QAccessibleQuickWindow::childCount(this=<unavailable>) const at qaccessiblequickview.cpp:31:12 [opt]
          frame #6: 0x0000000101ea2244 libQt6Quick.6.dylib`QAccessibleQuickWindow::childAt(this=0x0000600000ca7d70, x=96, y=68) const at qaccessiblequickview.cpp:95:18 [opt]
          frame #7: 0x00000001017cf89c libqcocoa.dylib`-[QMacAccessibilityElement accessibilityHitTest:](self=0x0000600000009450, _cmd=<unavailable>, point=<unavailable>) at qcocoaaccessibilityelement.mm:568:51 [opt]
          frame #8: 0x00000001965177ec AppKit`-[NSWindow(NSWindowAccessibility) accessibilityHitTest:] + 324
          frame #9: 0x00000001960b0bbc AppKit`-[NSApplication(NSApplicationAccessibility) accessibilityHitTest:] + 256
          frame #10: 0x0000000196079ce8 AppKit`CopyElementAtPosition + 152
          frame #11: 0x000000019823f240 HIServices`_AXXMIGCopyElementAtPosition + 444
          frame #12: 0x00000001982640f4 HIServices`_XCopyElementAtPosition + 356
          frame #13: 0x000000019821cba8 HIServices`mshMIGPerform + 204
          frame #14: 0x0000000192ad1fc4 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 60
          frame #15: 0x0000000192ad1ee4 CoreFoundation`__CFRunLoopDoSource1 + 520
          frame #16: 0x0000000192ad08d0 CoreFoundation`__CFRunLoopRun + 2264
          frame #17: 0x0000000192acf8a4 CoreFoundation`CFRunLoopRunSpecific + 612
          frame #18: 0x000000019c1433bc HIToolbox`RunCurrentEventLoopInMode + 292
          frame #19: 0x000000019c143200 HIToolbox`ReceiveNextEventCommon + 672
          frame #20: 0x000000019c142f48 HIToolbox`_BlockUntilNextEventMatchingListInModeWithFilter + 72
          frame #21: 0x0000000195d28630 AppKit`_DPSNextEvent + 632
          frame #22: 0x0000000195d277c0 AppKit`-[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 728
          frame #23: 0x0000000195d1bbf0 AppKit`-[NSApplication run] + 464
          frame #24: 0x00000001017716ac libqcocoa.dylib`QCocoaEventDispatcher::processEvents(this=0x0000600000008ed0, flags=<unavailable>) at qcocoaeventdispatcher.mm:395:17 [opt]
          frame #25: 0x0000000103d3a89c libQt6Core.6.dylib`QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) [inlined] QEventLoop::processEvents(this=0x000000016fdff1f0, flags=<unavailable>) at qeventloop.cpp:100:55 [opt]
          frame #26: 0x0000000103d3a878 libQt6Core.6.dylib`QEventLoop::exec(this=0x000000016fdff1f0, flags=<unavailable>) at qeventloop.cpp:182:9 [opt]
          frame #27: 0x0000000103d3192c libQt6Core.6.dylib`QCoreApplication::exec() at qcoreapplication.cpp:1351:32 [opt]
          frame #28: 0x00000001000081a8 quickwidget`main(argc=1, argv=<unavailable>) at main.cpp:195:12 [opt]
          frame #29: 0x00000001926c7e50 dyld`start + 2544
      

      Attachments

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              vhilshei Volker Hilsheimer
              lagocs Laszlo Agocs
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes