https://bugs.kde.org/show_bug.cgi?id=289693
David Faure <fa...@kde.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |fa...@kde.org --- Comment #25 from David Faure <faure kde org> 2012-01-04 22:19:20 --- This is the relevant portion of the valgrind log: ==6000== Invalid read of size 4 ==6000== at 0x39B0CFE8DD: Akonadi::EntityTreeModel::data(QModelIndex const&, int) const (entitytreemodel.cpp:237) ==6000== by 0x3C23033EEA: KSelectionProxyModel::data(QModelIndex const&, int) const (qabstractitemmodel.h:402) ==6000== by 0x3C21D6A40B: QSortFilterProxyModel::data(QModelIndex const&, int) const (qsortfilterproxymodel.cpp:1718) ==6000== by 0x39B50974DA: MessageList::StorageModel::itemForRow(int) const (storagemodel.cpp:475) ==6000== by 0x39B509B807: MessageList::Widget::Private::itemForRow(int) const (widget.cpp:495) ==6000== by 0x39B509B89C: MessageList::Widget::currentItem() const (widget.cpp:511) ==6000== by 0x39B50931DB: MessageList::Pane::currentItem() const (pane.cpp:709) ==6000== by 0x39B4B12B93: KMMainWidget::itemsReceived(QList<Akonadi::Item> const&) (kmmainwidget.cpp:4369) ==6000== by 0x39B4B2DF5D: KMMainWidget::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (kmmainwidget.moc:481) ==6000== by 0x3C2058CCD0: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (qobject.cpp:3547) ==6000== by 0x39B0D30561: Akonadi::ItemFetchJob::itemsReceived(QList<Akonadi::Item> const&) (itemfetchjob.moc:106) ==6000== by 0x39B0D31623: Akonadi::ItemFetchJob::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (itemfetchjob.cpp:71) ==6000== Address 0xbba0430 is 16 bytes inside a block of size 24 free'd ==6000== at 0x4A062BC: operator delete(void*) (vg_replace_malloc.c:387) ==6000== by 0x39B0D09589: Akonadi::EntityTreeModelPrivate::monitoredItemRemoved(Akonadi::Item const&) (entitytreemodel_p.cpp:1056) ==6000== by 0x3C2058CCD0: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (qobject.cpp:3547) ==6000== by 0x39B0D467D4: Akonadi::Monitor::itemRemoved(Akonadi::Item const&) (monitor.moc:210) ==6000== by 0x39B0D4AB3B: Akonadi::MonitorPrivate::emitItemNotification(Akonadi::NotificationMessage const&, Akonadi::Item const&, Akonadi::Collection const&, Akonadi::Collection const&) (monitor_p.cpp:535) ==6000== by 0x39B0D4C2E1: Akonadi::MonitorPrivate::emitNotification(Akonadi::NotificationMessage const&) (monitor_p.cpp:288) ==6000== by 0x39B0CAED60: Akonadi::ChangeRecorderPrivate::emitNotification(Akonadi::NotificationMessage const&) (changerecorder_p.h:60) ==6000== by 0x39B0D4C44C: Akonadi::MonitorPrivate::dispatchNotifications() (monitor_p.cpp:447) ==6000== by 0x39B0D4CAD3: Akonadi::MonitorPrivate::slotNotify(QList<Akonadi::NotificationMessage> const&) (monitor_p.cpp:418) ==6000== by 0x39B0CAF029: Akonadi::ChangeRecorderPrivate::slotNotify(QList<Akonadi::NotificationMessage> const&) (changerecorder_p.h:51) ==6000== by 0x3C2058CCD0: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (qobject.cpp:3547) ==6000== by 0x39B0DCD8D1: OrgFreedesktopAkonadiNotificationSourceInterface::notify(QList<Akonadi::NotificationMessage> const&) (notificationsourceinterface.moc:105) The deletion line is this one I think: delete m_childEntities[ collection.id() ].takeAt( row ); (in EntityTreeModelPrivate::monitoredItemRemoved) And despite the beginRemoveRows/endRemoveRows, somehow this index is still used later on in EntityTreeModel::data. Some intermediate proxy not reacting to row removal correctly? -- Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. _______________________________________________ Kdepim-bugs mailing list Kdepim-bugs@kde.org https://mail.kde.org/mailman/listinfo/kdepim-bugs