From 758c70283f9d41ad9281de96e3980a7a73fe8021 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lu=C3=ADs=20Pereira?= Date: Mon, 26 Mar 2018 20:21:53 +0100 Subject: [PATCH] Fix crashes due to invalid iterator use Although the iterators are constant we are indirectly changing them. Introduced by commit ac42ccb5e4d. Closes #8633 --- src/gui/categoryfilterwidget.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gui/categoryfilterwidget.cpp b/src/gui/categoryfilterwidget.cpp index 3fcd71e53..fff71c379 100644 --- a/src/gui/categoryfilterwidget.cpp +++ b/src/gui/categoryfilterwidget.cpp @@ -35,6 +35,7 @@ #include #include "base/bittorrent/session.h" +#include "base/global.h" #include "categoryfiltermodel.h" #include "categoryfilterproxymodel.h" #include "guiiconprovider.h" @@ -232,8 +233,7 @@ void CategoryFilterWidget::removeCategory() void CategoryFilterWidget::removeUnusedCategories() { auto session = BitTorrent::Session::instance(); - for (auto i = session->categories().cbegin(); i != session->categories().cend(); ++i) { - const QString &category = i.key(); + for (const QString &category : copyAsConst(session->categories().keys())) { if (model()->data(static_cast(model())->index(category), Qt::UserRole) == 0) session->removeCategory(category); }