Skip to content

Fix crash in DisabledActionNotifier

Carl Schwan requested to merge work/carl/fix-crash-disabledactionnotifier into master

Check if the shotcut exists before deleting it

Relevant backtrace:

#5  QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::get (this=0x8) at /home/carl/kde6/src/qtbase/src/corelib/tools/qscopedpointer.h:110
#6  qGetPtrHelper<QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> > > (ptr=...) at /home/carl/kde6/src/qtbase/src/corelib/global/qtclasshelpermacros.h:79
#7  QObject::d_func (this=0x0) at /home/carl/kde6/src/qtbase/src/corelib/kernel/qobject.h:108
#8  QObject::deleteLater (this=0x0) at /home/carl/kde6/src/qtbase/src/corelib/kernel/qobject.cpp:2452
#9  0x000000000053e5e1 in operator() (__closure=0x25e1140, enabled=true) at /home/carl/kde6/src/dolphin/src/disabledactionnotifier.cpp:29
#10 0x000000000053f105 in operator() (__closure=0x7ffd9cf45c20) at /home/carl/kde6/usr/include/QtCore/qobjectdefs_impl.h:142
#11 0x000000000053f1ae in QtPrivate::FunctorCallBase::call_internal<void, QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<bool>, void, DisabledActionNotifier::setDisabledReason(QAction*, QStringView)::<lambda(bool)> >::call(DisabledActionNotifier::setDisabledReason(QAction*, QStringView)::<lambda(bool)>&, void**)::<lambda()> >(void **, struct {...} &&) (args=0x7ffd9cf45db0, fn=...) at /home/carl/kde6/usr/include/QtCore/qobjectdefs_impl.h:72
#12 0x000000000053f13b in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<bool>, void, DisabledActionNotifier::setDisabledReason(QAction*, QStringView)::<lambda(bool)> >::call(struct {...} &, void **) (f=..., 
    arg=0x7ffd9cf45db0) at /home/carl/kde6/usr/include/QtCore/qobjectdefs_impl.h:141
#13 0x000000000053f095 in QtPrivate::FunctorCallable<DisabledActionNotifier::setDisabledReason(QAction*, QStringView)::<lambda(bool)>, bool>::call<QtPrivate::List<bool>, void>(struct {...} &, void *, void **) (f=..., 
    arg=0x7ffd9cf45db0) at /home/carl/kde6/usr/include/QtCore/qobjectdefs_impl.h:363
#14 0x000000000053ef90 in QtPrivate::QCallableObject<DisabledActionNotifier::setDisabledReason(QAction*, QStringView)::<lambda(bool)>, QtPrivate::List<bool>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (
    which=1, this_=0x25e1130, r=0x20e27b0, a=0x7ffd9cf45db0, ret=0x0) at /home/carl/kde6/usr/include/QtCore/qobjectdefs_impl.h:573
#15 0x00007f7d95de9e9a in QtPrivate::QSlotObjectBase::call (a=0x7ffd9cf45db0, r=0x20e27b0, this=0x25e1130) at /home/carl/kde6/src/qtbase/src/corelib/kernel/qobjectdefs_impl.h:487
#16 doActivate<false> (sender=0x20fdd00, signal_index=4, argv=0x7ffd9cf45db0) at /home/carl/kde6/src/qtbase/src/corelib/kernel/qobject.cpp:4111
#17 0x00007f7d95de0207 in QMetaObject::activate (sender=sender@entry=0x20fdd00, m=m@entry=0x7f7d96d2b200 <QAction::staticMetaObject>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x7ffd9cf45db0)
    at /home/carl/kde6/src/qtbase/src/corelib/kernel/qobject.cpp:4171
#18 0x00007f7d96a19be6 in QAction::enabledChanged (this=this@entry=0x20fdd00, _t1=<optimized out>, _t1@entry=true) at /home/carl/kde6/build/qtbase/src/gui/Gui_autogen/include/moc_qaction.cpp:460
#19 0x00007f7d96a1cd40 in QActionPrivate::setEnabled (this=0x20fda20, b=true, byGroup=<optimized out>) at /home/carl/kde6/src/qtbase/src/gui/kernel/qaction.cpp:958
#20 0x000000000045b725 in DolphinMainWindow::updatePasteAction (this=0x20391b0) at /home/carl/kde6/src/dolphin/src/dolphinmainwindow.cpp:861
#21 0x000000000045b834 in DolphinMainWindow::slotDirectoryLoadingCompleted (this=0x20391b0) at /home/carl/kde6/src/dolphin/src/dolphinmainwindow.cpp:871

Merge request reports