diff --git a/src/webui/api/torrentscontroller.cpp b/src/webui/api/torrentscontroller.cpp index 23145f87f..2d4136943 100644 --- a/src/webui/api/torrentscontroller.cpp +++ b/src/webui/api/torrentscontroller.cpp @@ -1482,15 +1482,16 @@ void TorrentsController::setTagsAction() const QStringList hashes {params()[u"hashes"_s].split(u'|', Qt::SkipEmptyParts)}; const QStringList tags {params()[u"tags"_s].split(u',', Qt::SkipEmptyParts)}; - TagSet newTags {tags.begin(), tags.end()}; - applyToTorrents(hashes, [newTags](BitTorrent::Torrent *const torrent) + const TagSet newTags {tags.begin(), tags.end()}; + applyToTorrents(hashes, [&newTags](BitTorrent::Torrent *const torrent) { + TagSet tmpTags {newTags}; for (const Tag &tag : asConst(torrent->tags())) { - if (newTags.erase(tag) == 0) + if (tmpTags.erase(tag) == 0) torrent->removeTag(tag); } - for (const Tag &tag : newTags) + for (const Tag &tag : tmpTags) torrent->addTag(tag); }); }