Torrent example: replace Java-style iteration with STL iterators

Java-iterators are going to be deprecated.

Change-Id: I2e6353f3fd9e2ddaf0767e7f6cea713249d9591e
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Marc Mutz 2019-05-23 10:39:56 +02:00
parent 070517f628
commit 77e708d167
1 changed files with 5 additions and 5 deletions

View File

@ -123,11 +123,11 @@ void RateController::transfer()
qint64 writeChunk = qMax<qint64>(1, bytesToWrite / pendingSockets.size());
qint64 readChunk = qMax<qint64>(1, bytesToRead / pendingSockets.size());
QSetIterator<PeerWireClient *> it(pendingSockets);
while (it.hasNext() && (bytesToWrite > 0 || bytesToRead > 0)) {
PeerWireClient *socket = it.next();
for (auto it = pendingSockets.begin(), end = pendingSockets.end(); it != end && (bytesToWrite > 0 || bytesToRead > 0); /*erasing*/) {
auto current = it++;
PeerWireClient *socket = *current;
if (socket->state() != QAbstractSocket::ConnectedState) {
pendingSockets.remove(socket);
pendingSockets.erase(current);
continue;
}
@ -156,7 +156,7 @@ void RateController::transfer()
if (dataTransferred && socket->canTransferMore())
canTransferMore = true;
else
pendingSockets.remove(socket);
pendingSockets.erase(current);
}
} while (canTransferMore && (bytesToWrite > 0 || bytesToRead > 0) && !pendingSockets.isEmpty());