-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/100723/
-----------------------------------------------------------

Review request for Amarok.


Summary
-------

patch for https://bugs.kde.org/show_bug.cgi?id=233170

When a query is started the Collections::QueryMaker* is stored in
    QHash<CollectionTreeItem*, Collections::QueryMaker*> runningQueries.

Now, when CollectionTreeItemModelBase::populateChildren deletes items
    CollectionTreeItemModelBase::itemAboutToBeDeleted
is called, which in turn stops, disconnects and deletes the queryMaker 
associated with the item.

The problem occurs, if there is more than one queryMaker for the item, as will 
happen, when
    CollectionTreeItemModelBase::handleCompilations
is called. In this case itemAboutToBeDeleted deletes only one queryMaker. The 
other one finishes normally, calls
    CollectionTreeItemModelBase::queryDone,
which in turn calls 
    CollectionTreeItem::row
of a deleted item and Amarok crashes with a segfault.

The patch changes the runningQueries buffer to QMultiHash. So all queryMakers 
are kept and itemAboutToBeDeleted can stop them all.


This addresses bug 233170.
    https://bugs.kde.org/show_bug.cgi?id=233170


Diffs
-----

  src/browsers/CollectionTreeItemModelBase.h df260d6 
  src/browsers/CollectionTreeItemModelBase.cpp 9e5a50d 

Diff: http://git.reviewboard.kde.org/r/100723/diff


Testing
-------

Sometimes Amarok still crashed, when entering a search. Unfortunately, the 
backtrace was always empty in these cases. I don't know why. This could be 
another bug.


Thanks,

Wolfgang

_______________________________________________
Amarok-devel mailing list
Amarok-devel@kde.org
https://mail.kde.org/mailman/listinfo/amarok-devel

Reply via email to