From a6ad95278ca0107d6530f420adbc700601530460 Mon Sep 17 00:00:00 2001 From: "Vladimir Golovnev (Glassez)" Date: Fri, 29 May 2020 09:35:19 +0300 Subject: [PATCH] Fix invalid assertion Closes #12938. --- src/base/bittorrent/session.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/base/bittorrent/session.cpp b/src/base/bittorrent/session.cpp index 9ed97f146..7a42d90e6 100644 --- a/src/base/bittorrent/session.cpp +++ b/src/base/bittorrent/session.cpp @@ -4685,8 +4685,9 @@ void Session::handleTorrentDeletedAlert(const lt::torrent_deleted_alert *p) if (removingTorrentDataIter == m_removingTorrents.end()) return; - Q_ASSERT(removingTorrentDataIter->pathsToRemove.count() == 1); - Utils::Fs::smartRemoveEmptyFolderTree(removingTorrentDataIter->pathsToRemove.first()); + Q_ASSERT(removingTorrentDataIter->pathsToRemove.count() <= 1); + if (!removingTorrentDataIter->pathsToRemove.isEmpty()) + Utils::Fs::smartRemoveEmptyFolderTree(removingTorrentDataIter->pathsToRemove.first()); LogMsg(tr("'%1' was removed from the transfer list and hard disk.", "'xxx.avi' was removed...").arg(removingTorrentDataIter->name)); m_removingTorrents.erase(removingTorrentDataIter); } @@ -4701,8 +4702,9 @@ void Session::handleTorrentDeleteFailedAlert(const lt::torrent_delete_failed_ale // libtorrent won't delete the directory if it contains files not listed in the torrent, // so we remove the directory ourselves - Q_ASSERT(removingTorrentDataIter->pathsToRemove.count() == 1); - Utils::Fs::smartRemoveEmptyFolderTree(removingTorrentDataIter->pathsToRemove.first()); + Q_ASSERT(removingTorrentDataIter->pathsToRemove.count() <= 1); + if (!removingTorrentDataIter->pathsToRemove.isEmpty()) + Utils::Fs::smartRemoveEmptyFolderTree(removingTorrentDataIter->pathsToRemove.first()); if (p->error) { LogMsg(tr("'%1' was removed from the transfer list but the files couldn't be deleted. Error: %2", "'xxx.avi' was removed...")