-
Bug
-
Resolution: Done
-
Not Evaluated
-
None
-
Qt Creator 4.7.1
-
None
-
Ubuntu 14.04 amd64, Qt 5.10.1, gcc 6.4.0-17ubuntu1~14.04
The crash reproduced in 100% of my tries. Here's how:
1. Create a project, containing only "int main() {}" in the cpp file
2. Open it in Qt Creator
3. With FakeVim enabled, in normal mode with the cursor e.g. on the braces, type :w and press the Return key
4. Get segmentation fault in about a second
Backtrace:
#0 0x00007fff980179d0 in ?? () #1 0x00007fffdded57b3 in CPlusPlus::Icons::iconTypeForSymbol (symbol=0x7fff98022bd0) at /home/ruslan/packages/qt-creator/src/libs/cplusplus/Icons.cpp:55 #2 0x00007fffdded91dc in CPlusPlus::Icons::iconForSymbol (symbol=<optimized out>) at /home/ruslan/packages/qt-creator/src/libs/cplusplus/Icons.cpp:40 #3 0x00007fffde34998c in CppTools::SymbolItem::data (this=0x3f85520, role=1) at /home/ruslan/packages/qt-creator/src/plugins/cpptools/cppoverviewmodel.cpp:119 #4 0x00007ffff7854db4 in Utils::BaseTreeModel::data (this=0x3efae70, idx=..., role=1) at /home/ruslan/packages/qt-creator/src/libs/utils/treemodel.cpp:1018 #5 0x00007ffff67adfb9 in QSortFilterProxyModel::data (this=<optimized out>, index=..., role=1) at itemmodels/qsortfilterproxymodel.cpp:2074 #6 0x00007ffff742e03a in QModelIndex::data (arole=1, this=0x7fffffffaf00) at ../../include/QtCore/../../src/corelib/itemmodels/qabstractitemmodel.h:432 #7 QStyledItemDelegate::initStyleOption (this=0x3f61400, option=0x7fffffffad90, index=...) at itemviews/qstyleditemdelegate.cpp:302 #8 0x00007ffff742d5ed in QStyledItemDelegate::sizeHint (this=0x3f61400, option=..., index=...) at itemviews/qstyleditemdelegate.cpp:410 #9 0x00007ffff746e453 in QTreeView::indexRowSizeHint (this=this@entry=0x3f165c0, index=...) at itemviews/qtreeview.cpp:3001 #10 0x00007ffff746ee76 in QTreeViewPrivate::layout (this=this@entry=0x3f6d8d0, i=i@entry=-1, recursiveExpanding=recursiveExpanding@entry=false, afterIsUninitialized=afterIsUninitialized@entry=false) at itemviews/qtreeview.cpp:3335 #11 0x00007ffff74768a6 in QTreeView::doItemsLayout (this=0x3f165c0) at itemviews/qtreeview.cpp:2120 #12 0x00007ffff74711c6 in QTreeViewPrivate::updateScrollBars (this=0x3f6d8d0) at itemviews/qtreeview.cpp:3668 #13 0x00007ffff7478151 in QTreeView::updateGeometries (this=0x3f165c0) at itemviews/qtreeview.cpp:2840 #14 0x00007ffff78236f0 in Utils::NavigationTreeView::resizeEvent (this=0x3f165c0, event=0x7fffffffb770) at /home/ruslan/packages/qt-creator/src/libs/utils/navigationtreeview.cpp:109 #15 0x00007ffff7215952 in QWidget::event (this=this@entry=0x3f165c0, event=event@entry=0x7fffffffb770) at kernel/qwidget.cpp:9061 #16 0x00007ffff72b59ee in QFrame::event (this=0x3f165c0, e=0x7fffffffb770) at widgets/qframe.cpp:550 #17 0x00007ffff741324c in QAbstractItemView::viewportEvent (this=this@entry=0x3f165c0, event=event@entry=0x7fffffffb770) at itemviews/qabstractitemview.cpp:1748 #18 0x00007ffff747708c in QTreeView::viewportEvent (this=0x3f165c0, event=0x7fffffffb770) at itemviews/qtreeview.cpp:1326 #19 0x00007ffff67e8ec0 in QCoreApplicationPrivate::sendThroughObjectEventFilters (receiver=receiver@entry=0x3f60200, event=event@entry=0x7fffffffb770) at kernel/qcoreapplication.cpp:1176 #20 0x00007ffff71d8385 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x3f60200, e=0x7fffffffb770) at kernel/qapplication.cpp:3728 #21 0x00007ffff71df661 in QApplication::notify (this=0x7fffffffd370, receiver=0x3f60200, e=0x7fffffffb770) at kernel/qapplication.cpp:3491 #22 0x00007ffff67e9128 in QCoreApplication::notifyInternal2 (receiver=receiver@entry=0x3f60200, event=event@entry=0x7fffffffb770) at kernel/qcoreapplication.cpp:1050 #23 0x00007ffff720e092 in QCoreApplication::sendEvent (event=0x7fffffffb770, receiver=0x3f60200) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:234 #24 QWidgetPrivate::sendPendingMoveAndResizeEvents (this=0x3f6dea0, recursive=recursive@entry=true, disableUpdates=<optimized out>, disableUpdates@entry=true) at kernel/qwidget.cpp:7925 #25 0x00007ffff720df84 in QWidgetPrivate::sendPendingMoveAndResizeEvents (this=0x3f6d8d0, recursive=recursive@entry=true, disableUpdates=<optimized out>, disableUpdates@entry=true) at kernel/qwidget.cpp:7937 #26 0x00007ffff720df84 in QWidgetPrivate::sendPendingMoveAndResizeEvents (this=0x3f761e0, recursive=recursive@entry=true, disableUpdates=<optimized out>, disableUpdates@entry=true) at kernel/qwidget.cpp:7937 #27 0x00007ffff720df84 in QWidgetPrivate::sendPendingMoveAndResizeEvents (this=0x3f6d700, recursive=recursive@entry=true, disableUpdates=<optimized out>, disableUpdates@entry=true) at kernel/qwidget.cpp:7937 #28 0x00007ffff720df84 in QWidgetPrivate::sendPendingMoveAndResizeEvents (this=0x2c3ce30, recursive=recursive@entry=true, disableUpdates=<optimized out>, disableUpdates@entry=true) at kernel/qwidget.cpp:7937 #29 0x00007ffff720df84 in QWidgetPrivate::sendPendingMoveAndResizeEvents (this=0x2c382f0, recursive=recursive@entry=true, disableUpdates=<optimized out>, disableUpdates@entry=true) at kernel/qwidget.cpp:7937 #30 0x00007ffff720df84 in QWidgetPrivate::sendPendingMoveAndResizeEvents (this=0xd01e50, recursive=recursive@entry=true, disableUpdates=<optimized out>, disableUpdates@entry=true) at kernel/qwidget.cpp:7937 #31 0x00007ffff720df84 in QWidgetPrivate::sendPendingMoveAndResizeEvents (this=0xa649b0, recursive=recursive@entry=true, disableUpdates=<optimized out>, disableUpdates@entry=true) at kernel/qwidget.cpp:7937 #32 0x00007ffff720df84 in QWidgetPrivate::sendPendingMoveAndResizeEvents (this=0xa3bc50, recursive=recursive@entry=true, disableUpdates=<optimized out>, disableUpdates@entry=true) at kernel/qwidget.cpp:7937 #33 0x00007ffff720df84 in QWidgetPrivate::sendPendingMoveAndResizeEvents (this=0xc05100, recursive=recursive@entry=true, disableUpdates=<optimized out>, disableUpdates@entry=true) at kernel/qwidget.cpp:7937 #34 0x00007ffff720df84 in QWidgetPrivate::sendPendingMoveAndResizeEvents (this=0xbaa320, recursive=recursive@entry=true, disableUpdates=<optimized out>, disableUpdates@entry=true) at kernel/qwidget.cpp:7937 #35 0x00007ffff7211e9b in QWidgetPrivate::prepareToRender (this=this@entry=0xbaa320, region=..., renderFlags=..., renderFlags@entry=...) at kernel/qwidget.cpp:5385 #36 0x00007ffff72125a3 in QWidget::render (this=<optimized out>, painter=0x7fffffffbe50, targetOffset=..., sourceRegion=..., renderFlags=...) at kernel/qwidget.cpp:5146 #37 0x00007fffe52172f9 in Oxygen::TransitionWidget::grabBackground(QPixmap&, QWidget*, QRect&) const () from /home/ruslan/opt/qt-5.10.1/plugins/styles/k4oxygen.so #38 0x00007fffe52166c7 in Oxygen::TransitionWidget::grab(QWidget*, QRect) () from /home/ruslan/opt/qt-5.10.1/plugins/styles/k4oxygen.so #39 0x00007fffe520e4ac in Oxygen::ComboBoxData::animate() () from /home/ruslan/opt/qt-5.10.1/plugins/styles/k4oxygen.so #40 0x00007fffe520de9a in Oxygen::ComboBoxData::indexChanged() () from /home/ruslan/opt/qt-5.10.1/plugins/styles/k4oxygen.so #41 0x00007fffe529b831 in Oxygen::ComboBoxData::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) () from /home/ruslan/opt/qt-5.10.1/plugins/styles/k4oxygen.so #42 0x00007ffff68152b7 in QMetaObject::activate (sender=sender@entry=0x3ef0890, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=5, argv=argv@entry=0x7fffffffc180) at kernel/qobject.cpp:3767 #43 0x00007ffff6815b87 in QMetaObject::activate (sender=sender@entry=0x3ef0890, m=m@entry=0x7ffff76955c0 <QComboBox::staticMetaObject>, local_signal_index=local_signal_index@entry=5, argv=argv@entry=0x7fffffffc180) at kernel/qobject.cpp:3629 #44 0x00007ffff72d6c41 in QComboBox::currentIndexChanged (this=this@entry=0x3ef0890, _t1=<optimized out>) at .moc/moc_qcombobox.cpp:503 #45 0x00007ffff72d8bb3 in QComboBoxPrivate::_q_emitCurrentIndexChanged (this=this@entry=0x3ef17e0, index=...) at widgets/qcombobox.cpp:1374 #46 0x00007ffff72dd7c7 in QComboBoxPrivate::_q_rowsRemoved (this=0x3ef17e0, parent=...) at widgets/qcombobox.cpp:1136 #47 0x00007ffff72e0399 in QComboBox::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=0x7fffffffc3a0) at .moc/moc_qcombobox.cpp:294 #48 0x00007ffff68152b7 in QMetaObject::activate (sender=sender@entry=0x3f01c80, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=12, argv=argv@entry=0x7fffffffc3a0) at kernel/qobject.cpp:3767 #49 0x00007ffff6815b87 in QMetaObject::activate (sender=sender@entry=0x3f01c80, m=m@entry=0x7ffff6ab1500 <QAbstractItemModel::staticMetaObject>, local_signal_index=local_signal_index@entry=12, argv=argv@entry=0x7fffffffc3a0) at kernel/qobject.cpp:3629 #50 0x00007ffff678b48e in QAbstractItemModel::rowsRemoved (this=this@entry=0x3f01c80, _t1=..., _t2=<optimized out>, _t3=<optimized out>, _t4=...) at .moc/moc_qabstractitemmodel.cpp:616 #51 0x00007ffff6792e7b in QAbstractItemModel::endRemoveRows (this=0x3f01c80) at itemmodels/qabstractitemmodel.cpp:2763 #52 0x00007ffff67b50d5 in QSortFilterProxyModelPrivate::remove_proxy_interval (emit_signal=true, orient=Qt::Vertical, proxy_parent=..., proxy_end=<optimized out>, proxy_start=<optimized out>, proxy_to_source=empty QVector<int>, source_to_proxy=QVector<int> = {...}, this=0x3efde00) at itemmodels/qsortfilterproxymodel.cpp:639 #53 QSortFilterProxyModelPrivate::remove_source_items (this=this@entry=0x3efde00, source_to_proxy=QVector<int> = {...}, proxy_to_source=empty QVector<int>, source_items=QVector<int> = {...}, source_parent=..., orient=orient@entry=Qt::Vertical, emit_signal=true) at itemmodels/qsortfilterproxymodel.cpp:609 #54 0x00007ffff67b52a9 in QSortFilterProxyModelPrivate::source_items_about_to_be_removed (this=0x3efde00, source_parent=..., start=0, end=1, orient=orient@entry=Qt::Vertical) at itemmodels/qsortfilterproxymodel.cpp:910 #55 0x00007ffff67b81d8 in QSortFilterProxyModelPrivate::_q_sourceRowsAboutToBeRemoved (end=<optimized out>, start=<optimized out>, source_parent=..., this=<optimized out>) at itemmodels/qsortfilterproxymodel.cpp:1536 #56 QSortFilterProxyModel::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at .moc/moc_qsortfilterproxymodel.cpp:215 #57 0x00007ffff68152b7 in QMetaObject::activate (sender=sender@entry=0x3efae70, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=11, argv=argv@entry=0x7fffffffc6b0) at kernel/qobject.cpp:3767 #58 0x00007ffff6815b87 in QMetaObject::activate (sender=sender@entry=0x3efae70, m=m@entry=0x7ffff6ab1500 <QAbstractItemModel::staticMetaObject>, local_signal_index=local_signal_index@entry=11, argv=argv@entry=0x7fffffffc6b0) at kernel/qobject.cpp:3629 #59 0x00007ffff678b42e in QAbstractItemModel::rowsAboutToBeRemoved (this=this@entry=0x3efae70, _t1=..., _t2=<optimized out>, _t2@entry=0, _t3=<optimized out>, _t3@entry=1, _t4=...) at .moc/moc_qabstractitemmodel.cpp:609 #60 0x00007ffff6792813 in QAbstractItemModel::beginRemoveRows (this=0x3efae70, parent=..., first=0, last=1) at itemmodels/qabstractitemmodel.cpp:2746 #61 0x00007ffff785392c in Utils::TreeItem::removeChildren (this=0x3f854a0) at /home/ruslan/packages/qt-creator/src/libs/utils/treemodel.cpp:719 #62 0x00007ffff7855194 in Utils::BaseTreeModel::setRootItem (this=0x3efae70, item=0x3f86f00) at /home/ruslan/packages/qt-creator/src/libs/utils/treemodel.cpp:1084 #63 0x00007fffde349d78 in CppTools::OverviewModel::rebuild (this=0x3efae70, doc=...) at /home/ruslan/packages/qt-creator/src/plugins/cpptools/cppoverviewmodel.cpp:163 #64 0x00007fffde2e8a2d in CppTools::CppEditorOutline::updateNow (this=0x3ef0c10) at /home/ruslan/packages/qt-creator/src/plugins/cpptools/cppeditoroutline.cpp:212 #65 0x00007fffde2e9fbd in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (CppTools::CppEditorOutline::*)()>::call(void (CppTools::CppEditorOutline::*)(), CppTools::CppEditorOutline*, void**) (f=(void (CppTools::CppEditorOutline::*)(CppTools::CppEditorOutline * const)) 0x7fffde2e88d0 <CppTools::CppEditorOutline::updateNow()>, o=0x3ef0c10, arg=0x7fffffffca00) at /home/ruslan/opt/qt-5.10.1/include/QtCore/qobjectdefs_impl.h:136 #66 0x00007fffde2e9e92 in QtPrivate::FunctionPointer<void (CppTools::CppEditorOutline::*)()>::call<QtPrivate::List<>, void>(void (CppTools::CppEditorOutline::*)(), CppTools::CppEditorOutline*, void**) (f=(void (CppTools::CppEditorOutline::*)(CppTools::CppEditorOutline * const)) 0x7fffde2e88d0 <CppTools::CppEditorOutline::updateNow()>, o=0x3ef0c10, arg=0x7fffffffca00) at /home/ruslan/opt/qt-5.10.1/include/QtCore/qobjectdefs_impl.h:169 #67 0x00007fffde2e9d76 in QtPrivate::QSlotObject<void (CppTools::CppEditorOutline::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x3ef1aa0, r=0x3ef0c10, a=0x7fffffffca00, ret=0x0) at /home/ruslan/opt/qt-5.10.1/include/QtCore/qobjectdefs_impl.h:398 #68 0x00007ffff68155fb in QtPrivate::QSlotObjectBase::call (a=0x7fffffffca00, r=0x3ef0c10, this=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:378 #69 QMetaObject::activate (sender=sender@entry=0x3f02a00, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fffffffca00) at kernel/qobject.cpp:3750 #70 0x00007ffff6815b87 in QMetaObject::activate (sender=sender@entry=0x3f02a00, m=m@entry=0x7ffff6ab2d00 <QTimer::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fffffffca00) at kernel/qobject.cpp:3629 #71 0x00007ffff68213d7 in QTimer::timeout (this=this@entry=0x3f02a00, _t1=...) at .moc/moc_qtimer.cpp:200 #72 0x00007ffff68216c8 in QTimer::timerEvent (this=0x3f02a00, e=<optimized out>) at kernel/qtimer.cpp:255 #73 0x00007ffff6815e6b in QObject::event (this=0x3f02a00, e=<optimized out>) at kernel/qobject.cpp:1269 #74 0x00007ffff71d83ac in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x3f02a00, e=0x7fffffffcce0) at kernel/qapplication.cpp:3732 #75 0x00007ffff71df661 in QApplication::notify (this=0x7fffffffd370, receiver=0x3f02a00, e=0x7fffffffcce0) at kernel/qapplication.cpp:3491 #76 0x00007ffff67e9128 in QCoreApplication::notifyInternal2 (receiver=0x3f02a00, event=event@entry=0x7fffffffcce0) at kernel/qcoreapplication.cpp:1050 #77 0x00007ffff683ce1e in QCoreApplication::sendEvent (event=0x7fffffffcce0, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:234 #78 QTimerInfoList::activateTimers (this=0x6e0750) at kernel/qtimerinfo_unix.cpp:643 #79 0x00007ffff683d5e1 in timerSourceDispatch (source=<optimized out>) at kernel/qeventdispatcher_glib.cpp:182 #80 0x00007ffff3e05e04 in g_main_dispatch (context=0x7fffe8001e00) at /build/buildd/glib2.0-2.40.2/./glib/gmain.c:3064 #81 g_main_context_dispatch (context=context@entry=0x7fffe8001e00) at /build/buildd/glib2.0-2.40.2/./glib/gmain.c:3663 #82 0x00007ffff3e06048 in g_main_context_iterate (context=context@entry=0x7fffe8001e00, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at /build/buildd/glib2.0-2.40.2/./glib/gmain.c:3734 #83 0x00007ffff3e060ec in g_main_context_iteration (context=0x7fffe8001e00, may_block=may_block@entry=1) at /build/buildd/glib2.0-2.40.2/./glib/gmain.c:3795 #84 0x00007ffff683d93b in QEventDispatcherGlib::processEvents (this=this@entry=0x6a2bc0, flags=...) at kernel/qeventdispatcher_glib.cpp:425 #85 0x00007fffef804951 in QPAEventDispatcherGlib::processEvents (this=0x6a2bc0, flags=...) at qeventdispatcher_glib.cpp:69 #86 0x00007ffff67e753a in QEventLoop::exec (this=this@entry=0x7fffffffcf30, flags=..., flags@entry=...) at kernel/qeventloop.cpp:212 #87 0x00007ffff67f0274 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1338 #88 0x0000000000410c89 in main (argc=1, argv=0x7fffffffd4c8) at /home/ruslan/packages/qt-creator/src/app/main.cpp:608
Valgrind reports the following relevant errors:
==19840== Invalid read of size 8 ==19840== at 0x188C87AD: CPlusPlus::Icons::iconTypeForSymbol(CPlusPlus::Symbol const*) (Icons.cpp:55) ==19840== by 0x188CC1DB: CPlusPlus::Icons::iconForSymbol(CPlusPlus::Symbol const*) (Icons.cpp:40) ==19840== by 0x1832F98B: CppTools::SymbolItem::data(int, int) const (cppoverviewmodel.cpp:119) ==19840== by 0x5243DB3: Utils::BaseTreeModel::data(QModelIndex const&, int) const (treemodel.cpp:1018) ==19840== by 0x6396FB8: QSortFilterProxyModel::data(QModelIndex const&, int) const (qsortfilterproxymodel.cpp:2074) ==19840== by 0x5909039: data (qabstractitemmodel.h:432) ==19840== by 0x5909039: QStyledItemDelegate::initStyleOption(QStyleOptionViewItem*, QModelIndex const&) const (qstyleditemdelegate.cpp:302) ==19840== by 0x59085EC: QStyledItemDelegate::sizeHint(QStyleOptionViewItem const&, QModelIndex const&) const (qstyleditemdelegate.cpp:410) ==19840== by 0x5949452: QTreeView::indexRowSizeHint(QModelIndex const&) const (qtreeview.cpp:3001) ==19840== by 0x5949E75: QTreeViewPrivate::layout(int, bool, bool) (qtreeview.cpp:3335) ==19840== by 0x59518A5: QTreeView::doItemsLayout() (qtreeview.cpp:2120) ==19840== by 0x594C1C5: QTreeViewPrivate::updateScrollBars() (qtreeview.cpp:3668) ==19840== by 0x5953150: QTreeView::updateGeometries() (qtreeview.cpp:2840) ==19840== Address 0x2d7f80a0 is 0 bytes inside a block of size 120 free'd ==19840== at 0x4C2C2BC: operator delete(void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==19840== by 0x18886F7E: delete_array_entries<__gnu_cxx::__normal_iterator<CPlusPlus::Symbol* const*, std::vector<CPlusPlus::Symbol*> > > (Control.cpp:196) ==19840== by 0x18886F7E: delete_array_entries<std::vector<CPlusPlus::Symbol*> > (Control.cpp:201) ==19840== by 0x18886F7E: ~Data (Control.cpp:228) ==19840== by 0x18886F7E: CPlusPlus::Control::~Control() (Control.cpp:548) ==19840== by 0x188D45FB: CPlusPlus::Document::~Document() (CppDocument.cpp:291) ==19840== by 0x188D78B1: execute (qsharedpointer_impl.h:195) ==19840== by 0x188D78B1: QtSharedPointer::ExternalRefCountWithCustomDeleter<CPlusPlus::Document, QtSharedPointer::NormalDeleter>::deleter(QtSharedPointer::ExternalRefCountData*) (qsharedpointer_impl.h:213) ==19840== by 0x18241096: QtSharedPointer::ExternalRefCountData::destroy() (qsharedpointer_impl.h:157) ==19840== by 0x1824AE8F: QSharedPointer<CPlusPlus::Document>::deref(QtSharedPointer::ExternalRefCountData*) (qsharedpointer_impl.h:461) ==19840== by 0x182494E3: QSharedPointer<CPlusPlus::Document>::deref() (qsharedpointer_impl.h:456) ==19840== by 0x182479C1: QSharedPointer<CPlusPlus::Document>::~QSharedPointer() (qsharedpointer_impl.h:313) ==19840== by 0x182F6FD6: QSharedPointer<CPlusPlus::Document>::operator=(QSharedPointer<CPlusPlus::Document> const&) (qsharedpointer_impl.h:332) ==19840== by 0x1832FD33: CppTools::OverviewModel::rebuild(QSharedPointer<CPlusPlus::Document>) (cppoverviewmodel.cpp:160) ==19840== by 0x182CEA2C: CppTools::CppEditorOutline::updateNow() (cppeditoroutline.cpp:212) ==19840== by 0x182CFFBC: QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (CppTools::CppEditorOutline::*)()>::call(void (CppTools::CppEditorOutline::*)(), CppTools::CppEditorOutline*, void**) (qobjectdefs_impl.h:136) ==19840== ==19840== Invalid read of size 8 ==19840== at 0x188C87E0: CPlusPlus::Icons::iconTypeForSymbol(CPlusPlus::Symbol const*) (Icons.cpp:60) ==19840== by 0x188CC1DB: CPlusPlus::Icons::iconForSymbol(CPlusPlus::Symbol const*) (Icons.cpp:40) ==19840== by 0x1832F98B: CppTools::SymbolItem::data(int, int) const (cppoverviewmodel.cpp:119) ==19840== by 0x5243DB3: Utils::BaseTreeModel::data(QModelIndex const&, int) const (treemodel.cpp:1018) ==19840== by 0x6396FB8: QSortFilterProxyModel::data(QModelIndex const&, int) const (qsortfilterproxymodel.cpp:2074) ==19840== by 0x5909039: data (qabstractitemmodel.h:432) ==19840== by 0x5909039: QStyledItemDelegate::initStyleOption(QStyleOptionViewItem*, QModelIndex const&) const (qstyleditemdelegate.cpp:302) ==19840== by 0x59085EC: QStyledItemDelegate::sizeHint(QStyleOptionViewItem const&, QModelIndex const&) const (qstyleditemdelegate.cpp:410) ==19840== by 0x5949452: QTreeView::indexRowSizeHint(QModelIndex const&) const (qtreeview.cpp:3001) ==19840== by 0x5949E75: QTreeViewPrivate::layout(int, bool, bool) (qtreeview.cpp:3335) ==19840== by 0x59518A5: QTreeView::doItemsLayout() (qtreeview.cpp:2120) ==19840== by 0x594C1C5: QTreeViewPrivate::updateScrollBars() (qtreeview.cpp:3668) ==19840== by 0x5953150: QTreeView::updateGeometries() (qtreeview.cpp:2840) ==19840== Address 0x2d7f80a0 is 0 bytes inside a block of size 120 free'd ==19840== at 0x4C2C2BC: operator delete(void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==19840== by 0x18886F7E: delete_array_entries<__gnu_cxx::__normal_iterator<CPlusPlus::Symbol* const*, std::vector<CPlusPlus::Symbol*> > > (Control.cpp:196) ==19840== by 0x18886F7E: delete_array_entries<std::vector<CPlusPlus::Symbol*> > (Control.cpp:201) ==19840== by 0x18886F7E: ~Data (Control.cpp:228) ==19840== by 0x18886F7E: CPlusPlus::Control::~Control() (Control.cpp:548) ==19840== by 0x188D45FB: CPlusPlus::Document::~Document() (CppDocument.cpp:291) ==19840== by 0x188D78B1: execute (qsharedpointer_impl.h:195) ==19840== by 0x188D78B1: QtSharedPointer::ExternalRefCountWithCustomDeleter<CPlusPlus::Document, QtSharedPointer::NormalDeleter>::deleter(QtSharedPointer::ExternalRefCountData*) (qsharedpointer_impl.h:213) ==19840== by 0x18241096: QtSharedPointer::ExternalRefCountData::destroy() (qsharedpointer_impl.h:157) ==19840== by 0x1824AE8F: QSharedPointer<CPlusPlus::Document>::deref(QtSharedPointer::ExternalRefCountData*) (qsharedpointer_impl.h:461) ==19840== by 0x182494E3: QSharedPointer<CPlusPlus::Document>::deref() (qsharedpointer_impl.h:456) ==19840== by 0x182479C1: QSharedPointer<CPlusPlus::Document>::~QSharedPointer() (qsharedpointer_impl.h:313) ==19840== by 0x182F6FD6: QSharedPointer<CPlusPlus::Document>::operator=(QSharedPointer<CPlusPlus::Document> const&) (qsharedpointer_impl.h:332) ==19840== by 0x1832FD33: CppTools::OverviewModel::rebuild(QSharedPointer<CPlusPlus::Document>) (cppoverviewmodel.cpp:160) ==19840== by 0x182CEA2C: CppTools::CppEditorOutline::updateNow() (cppeditoroutline.cpp:212) ==19840== by 0x182CFFBC: QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (CppTools::CppEditorOutline::*)()>::call(void (CppTools::CppEditorOutline::*)(), CppTools::CppEditorOutline*, void**) (qobjectdefs_impl.h:136) ==19840== pure virtual method called terminate called without an active exception