https://bugs.kde.org/show_bug.cgi?id=376523
Bug ID: 376523 Summary: Assertion failure when discarding changes in Custom BuildSystem settings. Product: kdevelop Version: 5.1.0 Platform: Compiled Sources OS: Linux Status: UNCONFIRMED Severity: crash Priority: NOR Component: BuildSystem: Custom BuildSystems Assignee: kdevelop-bugs-n...@kde.org Reporter: m...@flherne.uk Target Milestone: --- Using recent 5.1 branches, compiled from source on Arch Linux: - Create a Custom BuildSystem project. - Go to Project -> Open Configuration -> Custom BuildSystem - Make some config change, but don't apply it. - Switch to another config page. - A dialog will appear asking whether to Apply or Discard changes. - Select 'Discard'. KDevelop will crash with the following backtrace. This doesn't occur if selecting 'Apply', or with other build plugins (at least Make, CMake). --------- ASSERT: "ui->currentConfig->count() == configs.count()" in file /home/flh/projects/kdevelop/projectmanagers/custom-buildsystem/custombuildsystemconfigwidget.cpp, line 196 Thread 1 "kdevelop" received signal SIGABRT, Aborted. 0x00007ffff02d904f in raise () from /usr/lib/libc.so.6 (gdb) bt #0 0x00007ffff02d904f in raise () at /usr/lib/libc.so.6 #1 0x00007ffff02da47a in abort () at /usr/lib/libc.so.6 #2 0x00007ffff0f7ae21 in () at /usr/lib/libQt5Core.so.5 #3 0x00007ffff0f763de in () at /usr/lib/libQt5Core.so.5 #4 0x00007fffb3006cc9 in CustomBuildSystemConfigWidget::verify() (this=0x2aa8790) at /home/flh/projects/kdevelop/projectmanagers/custom-buildsystem/custombuildsystemconfigwidget.cpp:196 #5 0x00007fffb3009d85 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (CustomBuildSystemConfigWidget::*)()>::call(void (CustomBuildSystemConfigWidget::*)(), CustomBuildSystemConfigWidget*, void**) (f=(void (CustomBuildSystemConfigWidget::*)(CustomBuildSystemConfigWidget * const)) 0x7fffb3006c7a <CustomBuildSystemConfigWidget::verify()>, o=0x2aa8790, arg=0x7fffffff9ae0) at /usr/include/qt/QtCore/qobjectdefs_impl.h:143 #6 0x00007fffb3009b4e in QtPrivate::FunctionPointer<void (CustomBuildSystemConfigWidget::*)()>::call<QtPrivate::List<>, void>(void (CustomBuildSystemConfigWidget::*)(), CustomBuildSystemConfigWidget*, void**) (f=(void (CustomBuildSystemConfigWidget::*)(CustomBuildSystemConfigWidget * const)) 0x7fffb3006c7a <CustomBuildSystemConfigWidget::verify()>, o=0x2aa8790, arg=0x7fffffff9ae0) at /usr/include/qt/QtCore/qobjectdefs_impl.h:162 #7 0x00007fffb300980d in QtPrivate::QSlotObject<void (CustomBuildSystemConfigWidget::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x2a5e810, r=0x2aa8790, a=0x7fffffff9ae0, ret=0x0) at /usr/include/qt/QtCore/qobject_impl.h:120 #8 0x00007ffff119b0be in QMetaObject::activate(QObject*, int, int, void**) () at /usr/lib/libQt5Core.so.5 #9 0x00007fffb300b2c3 in CustomBuildSystemConfigWidget::changed() (this=0x2aa8790) at /home/flh/projects/kdevelop/build/projectmanagers/custom-buildsystem/kdevcustombuildsystem_automoc.dir/moc_custombuildsys_6N7SPIMYBDOOYP.cpp:156 #10 0x00007fffb3006df3 in CustomBuildSystemConfigWidget::renameCurrentConfig(QString const&) (this=0x2aa8790, name=...) at /home/flh/projects/kdevelop/projectmanagers/custom-buildsystem/custombuildsystemconfigwidget.cpp:212 #11 0x00007fffb3009e17 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<QString const&>, void, void (CustomBuildSystemConfigWidget::*)(QString const&)>::call(void (CustomBuildSystemConfigWidget::*)(QString const&), CustomBuildSystemConfigWidget*, void**) (f= (void (CustomBuildSystemConfigWidget::*)(CustomBuildSystemConfigWidget * const, const QString &)) 0x7fffb3006d78 <CustomBuildSystemConfigWidget::renameCurrentConfig(QString const&)>, o=0x2aa8790, arg=0x7fffffff9d40) at /usr/include/qt/QtCore/qobjectdefs_impl.h:143 #12 0x00007fffb3009b93 in QtPrivate::FunctionPointer<void (CustomBuildSystemConfigWidget::*)(QString const&)>::call<QtPrivate::List<QString const&>, void>(void (CustomBuildSystemConfigWidget::*)(QString const&), CustomBuildSystemConfigWidget*, void**) (f= (void (CustomBuildSystemConfigWidget::*)(CustomBuildSystemConfigWidget * const, const QString &)) 0x7fffb3006d78 <CustomBuildSystemConfigWidget::renameCurrentConfig(QString const&)>, o=0x2aa8790, arg=0x7fffffff9d40) at /usr/include/qt/QtCore/qobjectdefs_impl.h:162 #13 0x00007fffb30098e9 in QtPrivate::QSlotObject<void (CustomBuildSystemConfigWidget::*)(QString const&), QtPrivate::List<QString const&>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x2b5c310, r=0x2aa8790, a=0x7fffffff9d40, ret=0x0) at /usr/include/qt/QtCore/qobject_impl.h:120 #14 0x00007ffff119b0be in QMetaObject::activate(QObject*, int, int, void**) () at /usr/lib/libQt5Core.so.5 #15 0x00007ffff1f4f352 in QComboBox::editTextChanged(QString const&) () at /usr/lib/libQt5Widgets.so.5 #16 0x00007ffff1f59101 in () at /usr/lib/libQt5Widgets.so.5 #17 0x00007ffff119ad49 in QMetaObject::activate(QObject*, int, int, void**) () at /usr/lib/libQt5Core.so.5 #18 0x00007ffff1f8ecb2 in QLineEdit::textChanged(QString const&) () at /usr/lib/libQt5Widgets.so.5 #19 0x00007ffff1f95289 in () at /usr/lib/libQt5Widgets.so.5 #20 0x00007ffff119ad49 in QMetaObject::activate(QObject*, int, int, void**) () at /usr/lib/libQt5Core.so.5 #21 0x00007ffff201e535 in QWidgetLineControl::textChanged(QString const&) () at /usr/lib/libQt5Widgets.so.5 #22 0x00007ffff2021a7e in QWidgetLineControl::finishChange(int, bool, bool) () at /usr/lib/libQt5Widgets.so.5 #23 0x00007ffff2021d57 in QWidgetLineControl::internalSetText(QString const&, int, bool) () at /usr/lib/libQt5Widgets.so.5 #24 0x00007ffff1f90982 in QLineEdit::setText(QString const&) () at /usr/lib/libQt5Widgets.so.5 #25 0x00007ffff1f5403f in () at /usr/lib/libQt5Widgets.so.5 #26 0x00007ffff1f542bf in QComboBox::setCurrentIndex(int) () at /usr/lib/libQt5Widgets.so.5 #27 0x00007fffb30063d9 in CustomBuildSystemConfigWidget::loadFrom(KConfig*) (this=0x2aa8790, cfg=0x24f75d0) at /home/flh/projects/kdevelop/projectmanagers/custom-buildsystem/custombuildsystemconfigwidget.cpp:110 #28 0x00007fffb300a081 in CustomBuildSystemKCModule::reset() (this=0x271e180) at /home/flh/projects/kdevelop/projectmanagers/custom-buildsystem/kcm_custombuildsystem.cpp:47 #29 0x00007ffff7ae398f in KDevelop::ConfigDialog::checkForUnsavedChanges(KPageWidgetItem*, KPageWidgetItem*) (this=0x2fdf980, current=0x2ffbbe0, before=0x298b220) at /home/flh/projects/kdevplatform/shell/configdialog.cpp:101 #30 0x00007ffff7ae5bd1 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1>, QtPrivate::List<KPageWidgetItem*, KPageWidgetItem*>, void, int (KDevelop::ConfigDialog::*)(KPageWidgetItem*, KPageWidgetItem*)>::call(int (KDevelop::ConfigDialog::*)(KPageWidgetItem*, KPageWidgetItem*), KDevelop::ConfigDialog*, void**) (f= (int (KDevelop::ConfigDialog::*)(KDevelop::ConfigDialog * const, KPageWidgetItem *, KPageWidgetItem *)) 0x7ffff7ae37de <KDevelop::ConfigDialog::checkForUnsavedChanges(KPageWidgetItem*, KPageWidgetItem*)>, o=0x2fdf980, arg=0x7fffffffa700) at /usr/include/qt/QtCore/qobjectdefs_impl.h:143 #31 0x00007ffff7ae5974 in QtPrivate::FunctionPointer<int (KDevelop::ConfigDialog::*)(KPageWidgetItem*, KPageWidgetItem*)>::call<QtPrivate::List<KPageWidgetItem*, KPageWidgetItem*>, void>(int (KDevelop::ConfigDialog::*)(KPageWidgetItem*, KPageWidgetItem*), KDevelop::ConfigDialog*, void**) (f= (int (KDevelop::ConfigDialog::*)(KDevelop::ConfigDialog * const, KPageWidgetItem *, KPageWidgetItem *)) 0x7ffff7ae37de <KDevelop::ConfigDialog::checkForUnsavedChanges(KPageWidgetItem*, KPageWidgetItem*)>, o=0x2fdf980, arg=0x7fffffffa700) at /usr/include/qt/QtCore/qobjectdefs_impl.h:162 #32 0x00007ffff7ae5567 in QtPrivate::QSlotObject<int (KDevelop::ConfigDialog::*)(KPageWidgetItem*, KPageWidgetItem*), QtPrivate::List<KPageWidgetItem*, KPageWidgetItem*>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0xaf92e0, r=0x2fdf980, a=0x7fffffffa700, ret=0x0) at /usr/include/qt/QtCore/qobject_impl.h:120 #33 0x00007ffff119b0be in QMetaObject::activate(QObject*, int, int, void**) () at /usr/lib/libQt5Core.so.5 ---Type <return> to continue, or q <return> to quit--- #34 0x00007ffff3a94ba8 in KPageDialog::currentPageChanged(KPageWidgetItem*, KPageWidgetItem*) () at /usr/lib/libKF5WidgetsAddons.so.5 #35 0x00007ffff3a95bcb in () at /usr/lib/libKF5WidgetsAddons.so.5 #36 0x00007ffff119ad49 in QMetaObject::activate(QObject*, int, int, void**) () at /usr/lib/libQt5Core.so.5 #37 0x00007ffff3a826c8 in KPageWidget::currentPageChanged(KPageWidgetItem*, KPageWidgetItem*) () at /usr/lib/libKF5WidgetsAddons.so.5 #38 0x00007ffff3a82861 in () at /usr/lib/libKF5WidgetsAddons.so.5 #39 0x00007ffff119ad49 in QMetaObject::activate(QObject*, int, int, void**) () at /usr/lib/libQt5Core.so.5 #40 0x00007ffff3a7bd67 in KPageView::currentPageChanged(QModelIndex const&, QModelIndex const&) () at /usr/lib/libKF5WidgetsAddons.so.5 #41 0x00007ffff3a7cb54 in () at /usr/lib/libKF5WidgetsAddons.so.5 #42 0x00007ffff3a7d871 in () at /usr/lib/libKF5WidgetsAddons.so.5 #43 0x00007ffff119ad49 in QMetaObject::activate(QObject*, int, int, void**) () at /usr/lib/libQt5Core.so.5 #44 0x00007ffff111e4f7 in QItemSelectionModel::selectionChanged(QItemSelection const&, QItemSelection const&) () at /usr/lib/libQt5Core.so.5 #45 0x00007ffff1122dcc in QItemSelectionModel::emitSelectionChanged(QItemSelection const&, QItemSelection const&) () at /usr/lib/libQt5Core.so.5 #46 0x00007ffff1126922 in QItemSelectionModel::select(QItemSelection const&, QFlags<QItemSelectionModel::SelectionFlag>) () at /usr/lib/libQt5Core.so.5 #47 0x00007ffff20c0435 in QListView::setSelection(QRect const&, QFlags<QItemSelectionModel::SelectionFlag>) () at /usr/lib/libQt5Widgets.so.5 #48 0x00007ffff20a18bd in QAbstractItemView::mousePressEvent(QMouseEvent*) () at /usr/lib/libQt5Widgets.so.5 #49 0x00007ffff1e9964f in QWidget::event(QEvent*) () at /usr/lib/libQt5Widgets.so.5 #50 0x00007ffff1f80ece in QFrame::event(QEvent*) () at /usr/lib/libQt5Widgets.so.5 #51 0x00007ffff20a7ed3 in QAbstractItemView::viewportEvent(QEvent*) () at /usr/lib/libQt5Widgets.so.5 #52 0x00007ffff116f1a1 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5 #53 0x00007ffff1e51325 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5 #54 0x00007ffff1e598c5 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5 #55 0x00007ffff116f440 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5 #56 0x00007ffff1e580cd in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () at /usr/lib/libQt5Widgets.so.5 #57 0x00007ffff1eb33e6 in () at /usr/lib/libQt5Widgets.so.5 #58 0x00007ffff1eb5e03 in () at /usr/lib/libQt5Widgets.so.5 #59 0x00007ffff1e5134c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5 #60 0x00007ffff1e58b61 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5 #61 0x00007ffff116f440 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5 #62 0x00007ffff16bcd53 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () at /usr/lib/libQt5Gui.so.5 #63 0x00007ffff16be8c5 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () at /usr/lib/libQt5Gui.so.5 #64 0x00007ffff169a44b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Gui.so.5 #65 0x00007fffd7d319e0 in () at /usr/lib/libQt5XcbQpa.so.5 #66 0x00007fffe4b60587 in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0 #67 0x00007fffe4b607f0 in () at /usr/lib/libglib-2.0.so.0 #68 0x00007fffe4b6089c in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #69 0x00007ffff11c404f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #70 0x00007ffff116d89a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5 #71 0x00007ffff1175de4 in QCoreApplication::exec() () at /usr/lib/libQt5Core.so.5 #72 0x000000000040f341 in main(int, char**) (argc=3, argv=0x7fffffffe148) at /home/flh/projects/kdevelop/app/main.cpp:763 -- You are receiving this mail because: You are watching all bug changes.