diff --git a/Changelog b/Changelog index a0e7e644b..734fcaa7b 100644 --- a/Changelog +++ b/Changelog @@ -5,6 +5,7 @@ - BUGFIX: Make sure we don't move completed torrent to the temp directory for checking (closes #602938) - BUGFIX: Fix some 'File Not found' warning in the Web UI + - BUGFIX: Fix dangerous usage of vector iterator * Sun Dec 5 2010 - Christophe Dumez - v2.5.1 - BUGFIX: Fix possible crash when right-clicking on a torrent diff --git a/src/properties/trackerlist.cpp b/src/properties/trackerlist.cpp index 38fb95132..8d5a3f01a 100644 --- a/src/properties/trackerlist.cpp +++ b/src/properties/trackerlist.cpp @@ -321,18 +321,15 @@ void TrackerList::deleteSelectedTrackers(){ delete item; } // Iterate of trackers and remove selected ones + std::vector remaining_trackers; std::vector trackers = h.trackers(); - std::vector::iterator it = trackers.begin(); - while(it != trackers.end()) { - int index = urls_to_remove.indexOf(misc::toQString((*it).url)); - if(index >= 0) { - trackers.erase(it); - urls_to_remove.removeAt(index); - } else { - it++; + std::vector::iterator it; + for(it = trackers.begin(); it != trackers.end(); it++) { + if(!urls_to_remove.contains(misc::toQString((*it).url))) { + remaining_trackers.push_back(*it); } } - h.replace_trackers(trackers); + h.replace_trackers(remaining_trackers); h.force_reannounce(); // Reload Trackers loadTrackers();