Skip to content

DecorationItem: Prevent crash

Aleix Pol Gonzalez requested to merge work/preventcrash into master

We are calling a QPointer without checking it first.

#0  KWin::Decoration::DecoratedClientImpl::client() (this=0x0) at /home/apol/devel/frameworks/kwin/src/decorations/decoratedclient.h:81
#1  0x00007f9742e5ecd2 in KWin::DecorationRenderer::invalidate() (this=0x56336bf0a0d0) at /home/apol/devel/frameworks/kwin/src/decorationitem.cpp:48
#2  0x00007f9742e619e8 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (KWin::DecorationRenderer::*)()>::call(void (KWin::DecorationRenderer::*)(), KWin::DecorationRenderer*, void**)
    (f=(void (KWin::DecorationRenderer::*)(KWin::DecorationRenderer * const)) 0x7f9742e5eca0 <KWin::DecorationRenderer::invalidate()>, o=0x56336bf0a0d0, arg=0x7ffe3d4248b0) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:152
#3  0x00007f9742e6194d in QtPrivate::FunctionPointer<void (KWin::DecorationRenderer::*)()>::call<QtPrivate::List<>, void>(void (KWin::DecorationRenderer::*)(), KWin::DecorationRenderer*, void**)
    (f=(void (KWin::DecorationRenderer::*)(KWin::DecorationRenderer * const)) 0x7f9742e5eca0 <KWin::DecorationRenderer::invalidate()>, o=0x56336bf0a0d0, arg=0x7ffe3d4248b0) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:185
#4  0x00007f9742e61892 in QtPrivate::QSlotObject<void (KWin::DecorationRenderer::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x56336c2bcfc0, r=0x56336bf0a0d0, a=0x7ffe3d4248b0, ret=0x0) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:418
#5  0x00007f9740162093 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffe3d4248b0, r=0x56336bf0a0d0, this=0x56336c2bcfc0) at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:398
#6  doActivate<false>(QObject*, int, void**) (sender=0x56336c4c4550, signal_index=20, argv=0x7ffe3d4248b0) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:3886
#7  0x00007f9742db3c95 in KWin::Toplevel::screenScaleChanged() (this=0x56336c4c4550) at src/kwin_autogen/EWIEGA46WW/moc_toplevel.cpp:883
#8  0x00007f9743007e3e in KWin::Toplevel::setOutput(KWin::AbstractOutput*) (this=0x56336c4c4550, output=0x56336bca0990) at /home/apol/devel/frameworks/kwin/src/toplevel.cpp:418
#9  0x00007f9743007d89 in KWin::Toplevel::checkOutput() (this=0x56336c4c4550) at /home/apol/devel/frameworks/kwin/src/toplevel.cpp:384

Merge request reports