Details
Description
#0 0x00007ffff73483e6 in QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::get (this=0x8) at /home/tjmaciei/obj/qt/qt6/qtbase/include/QtCore/../../../../../../src/qt/qt6/qtbase/src/corelib/tools/qscopedpointer.h:111 #1 0x00007ffff73dc4ea in qGetPtrHelper<QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> > const> (ptr=...) at /home/tjmaciei/obj/qt/qt6/qtbase/include/QtCore/../../../../../../src/qt/qt6/qtbase/src/corelib/global/qglobal.h:1102 #2 0x00007ffff746c074 in QScreen::d_func (this=0x0) at /home/tjmaciei/src/qt/qt6/qtbase/src/gui/kernel/qscreen.h:34 #3 0x00007ffff7469ea0 in QScreen::geometry (this=0x0) at /home/tjmaciei/src/qt/qt6/qtbase/src/gui/kernel/qscreen.cpp:383 #4 0x00007ffff746a0aa in QScreen::virtualGeometry (this=0x701ab0) at /home/tjmaciei/src/qt/qt6/qtbase/src/gui/kernel/qscreen.cpp:452 #5 0x00007ffff7469563 in QScreenPrivate::emitGeometryChangeSignals (this=0x7ffff0003b30, geometryChanged=true, availableGeometryChanged=true) at /home/tjmaciei/src/qt/qt6/qtbase/src/gui/kernel/qscreen.cpp:86 #6 0x00007ffff7469483 in QScreenPrivate::updateGeometriesWithSignals (this=0x7ffff0003b30) at /home/tjmaciei/src/qt/qt6/qtbase/src/gui/kernel/qscreen.cpp:71 #7 0x00007ffff74693e9 in QScreenPrivate::updateLogicalDpi (this=0x7ffff0003b30) at /home/tjmaciei/src/qt/qt6/qtbase/src/gui/kernel/qscreen.cpp:63 #8 0x00007ffff740f65a in QHighDpiScaling::setScreenFactor (screen=0x701ab0, factor=2) at /home/tjmaciei/src/qt/qt6/qtbase/src/gui/kernel/qhighdpiscaling.cpp:559 #9 0x00007ffff740f16f in QHighDpiScaling::updateHighDpiScaling () at /home/tjmaciei/src/qt/qt6/qtbase/src/gui/kernel/qhighdpiscaling.cpp:493 #10 0x00007ffff74847f0 in QWindowSystemInterface::handleScreenAdded (ps=0x7ffff0005500, isPrimary=true) at /home/tjmaciei/src/qt/qt6/qtbase/src/gui/kernel/qwindowsysteminterface.cpp:754 #11 0x00007ffff4d71608 in QXcbConnection::initializeScreens (this=0x6cbe10, initialized=false) at /home/tjmaciei/src/qt/qt6/qtbase/src/plugins/platforms/xcb/qxcbconnection_screens.cpp:347
Caused by 7b2ae3faab15913e006ece25d785e6a8453dd27a (https://codereview.qt-project.org/c/qt/qtbase/+/413380).
Reason: QXcbVirtualDesktop's m_screens is still incompletely initialised. At the time of frame 11 (QXcbConnection::initializeScreens), m_screens has two QXcbScreen items ("eDP-1" and "DP-1" for me), but only the first one's m_screen is non-null. When handleScreenAdded is called, it queries back to the virtual desktop in QScreen::virtualGeometry and gets a null QScreen pointer.