Skip to content

panelview: Fix when Qt is built with asserts

Aleix Pol Gonzalez requested to merge work/apol/fix-load-asserts into master

Add some logic to make sure we don't suggest temporarily a max size that is smaller than the current min size.

The alternative I see is to add some fairly specific API to QWindow, which might make sense but making it possible for Plasma to load it's also an okay thing to workaround.

Here's the bt I see:

  • 0 __pthread_kill_implementation (threadid=, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
  • 1 0x00007ffff1a9f2d3 in __pthread_kill_internal (signo=6, threadid=) at pthread_kill.c:78
  • 2 0x00007ffff1a4fa08 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
  • 3 0x00007ffff1a38538 in __GI_abort () at abort.c:79
  • 4 0x00007ffff20f4469 in qAbort() () at /home/apol/devel/frameworks/qt6/qtbase/src/corelib/global/qglobal.cpp:161
  • 5 0x00007ffff20ff7a8 in qt_message_fatal(QtMsgType, QMessageLogContext const&, QString const&) (context=..., message=...) at /home/apol/devel/frameworks/qt6/qtbase/src/corelib/global/qlogging.cpp:2048
  • 6 0x00007ffff21013d3 in QMessageLogger::fatal(char const*, ...) const (this=0x7fffffffacc8, msg=0x7ffff26ee471 "ASSERT: "%s" in file %s, line %d") at /home/apol/devel/frameworks/qt6/qtbase/src/corelib/global/qlogging.cpp:934
  • 7 0x00007ffff20f1dca in qt_assert(char const*, char const*, int) (assertion=0x7ffff7339bf9 "!(max < min)", file=0x7ffff733514b "/home/apol/build-devel/qt6/qtbase/include/QtCore/../../../../../devel/frameworks/qt6/qtbase/src/corelib/global/qminmax.h", line=46) at /home/apol/devel/frameworks/qt6/qtbase/src/corelib/global/qassert.cpp:68
  • 8 0x00007ffff72f9983 in qBound(int const&, int const&, int const&) (min=@0x7fffffffade8: 54, val=@0x7fffffffade4: 46, max=@0x7fffffffade0: 46) at qtbase/include/QtCore/../../../../../devel/frameworks/qt6/qtbase/src/corelib/global/qminmax.h:46
  • 9 0x00007ffff72f0f16 in QtWaylandClient::QWaylandWindow::setGeometry_helper(QRect const&) (this=0x5555563cff30, rect=...) at /home/apol/devel/frameworks/qt6/qtwayland/src/client/qwaylandwindow.cpp:374
  • 10 0x00007ffff72f2026 in QtWaylandClient::QWaylandWindow::setGeometry(QRect const&) (this=0x5555563cff30, r=...) at /home/apol/devel/frameworks/qt6/qtwayland/src/client/qwaylandwindow.cpp:397
  • 11 0x00007fffeda15351 in QtWaylandClient::QWaylandEglWindow::setGeometry(QRect const&) (this=0x5555563cff30, rect=...) at /home/apol/devel/frameworks/qt6/qtwayland/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp:54
  • 12 0x00007ffff2d0b22e in QWindow::resize(QSize const&) (this=0x5555562eb060, newSize=...) at /home/apol/devel/frameworks/qt6/qtbase/src/gui/kernel/qwindow.cpp:1942
  • 13 0x00007ffff2d0b15d in QWindowPrivate::setMinOrMaxSize(QSize*, QSize const&, qxp::function_ref<void ()>, qxp::function_ref<void ()>) (this=0x5555564189d0, oldSizeMember=0x555556418ae0, size=..., funcWidthChanged=..., funcHeightChanged=...) at /home/apol/devel/frameworks/qt6/qtbase/src/gui/kernel/qwindow.cpp:595
  • 14 0x00007ffff2d0d1dc in QWindow::setMinimumSize(QSize const&) (this=0x5555562eb060, size=...) at /home/apol/devel/frameworks/qt6/qtbase/src/gui/kernel/qwindow.cpp:1570
  • 15 0x00005555555d050a in PanelView::resizePanel() (this=0x5555562eb060) at /home/apol/devel/frameworks6/plasma-workspace/shell/panelview.cpp:653
  • 16 0x00005555555cea56 in PanelView::updateFloating() (this=0x5555562eb060) at /home/apol/devel/frameworks6/plasma-workspace/shell/panelview.cpp:1512
  • 17 0x00005555555cd0ab in PanelView::handleQmlStatusChange(QQmlComponent::Status) (this=0x5555562eb060, status=QQmlComponent::Ready) at /home/apol/devel/frameworks6/plasma-workspace/shell/panelview.cpp:1340

Merge request reports