diff options
author | Alexandru Croitor <alexandru.croitor@qt.io> | 2019-06-03 15:26:34 +0200 |
---|---|---|
committer | Alexandru Croitor <alexandru.croitor@qt.io> | 2019-06-03 15:51:20 +0200 |
commit | 5591e821358b9111c79336a66eac4d04bb5811ba (patch) | |
tree | 4b4c1da4f5ccaead1cf4f487622de1d0b242b0b9 /examples/network/torrent | |
parent | e4079eca49adce16e31dac2a18d49d7a55817891 (diff) | |
parent | ca0c9f82cbf7c8c37acdcbdfdc3fa0c5fc138059 (diff) |
Merge remote-tracking branch 'origin/dev' into wip/cmake
Change-Id: Ide5b3408bfefca410323cf26b810b44c06d3a227
Diffstat (limited to 'examples/network/torrent')
-rw-r--r-- | examples/network/torrent/torrentclient.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/examples/network/torrent/torrentclient.cpp b/examples/network/torrent/torrentclient.cpp index b4cbbb7a45..bddf3caa1a 100644 --- a/examples/network/torrent/torrentclient.cpp +++ b/examples/network/torrent/torrentclient.cpp @@ -874,8 +874,7 @@ void TorrentClient::removeClient() // Remove the client from RateController and all structures. RateController::instance()->removeSocket(client); d->connections.removeAll(client); - QMultiMap<PeerWireClient *, TorrentPiece *>::Iterator it = d->payloads.find(client); - while (it != d->payloads.end() && it.key() == client) { + for (auto it = d->payloads.find(client); it != d->payloads.end() && it.key() == client; /*erasing*/) { TorrentPiece *piece = it.value(); piece->inProgress = false; piece->requestedBlocks.fill(false); @@ -883,9 +882,12 @@ void TorrentClient::removeClient() } // Remove pending read requests. - QMapIterator<int, PeerWireClient *> it2(d->readIds); - while (it2.findNext(client)) - d->readIds.remove(it2.key()); + for (auto it = d->readIds.begin(), end = d->readIds.end(); it != end; /*erasing*/) { + if (it.value() == client) + it = d->readIds.erase(it); + else + ++it; + } // Delete the client later. disconnect(client, SIGNAL(disconnected()), this, SLOT(removeClient())); |