diff --git a/src/dht.cpp b/src/dht.cpp index d830a90414bc699f5fb9a484d9fb03f19f12f83a..0b49433d06df18610ee07a3f02d8955b2aa38606 100644 --- a/src/dht.cpp +++ b/src/dht.cpp @@ -670,10 +670,8 @@ struct Dht::Search { * @return true if a node has been removed, else false. */ bool removeExpiredNode(time_point now) { - auto e = nodes.end(); - while (e != nodes.cbegin()) { - e = std::prev(e); - const Node& n = *e->node; + for (auto e = nodes.cend(); e != nodes.cbegin();) { + const Node& n = *(--e)->node; if (n.isExpired() and n.time + Node::NODE_EXPIRE_TIME < now) { //std::cout << "Removing expired node " << n.id << " from IPv" << (af==AF_INET?'4':'6') << " search " << id << std::endl; nodes.erase(e);