Uploaded image for project: 'Qt Creator'
  1. Qt Creator
  2. QTCREATORBUG-21069

Crash on saving a file in FakeVim mode

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Not Evaluated Not Evaluated
    • None
    • Qt Creator 4.7.1
    • C/C++/Obj-C++ Support
    • None
    • Ubuntu 14.04 amd64, Qt 5.10.1, gcc 6.4.0-17ubuntu1~14.04
    • Linux/X11

      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
      

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

            kosjar Nikolai Kosjar
            10110111 Ruslan Kabatsayev
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved:

                There are no open Gerrit changes