The unified diff between revisions [8846a6b8..] and [ebdccab0..] is displayed below. It can also be downloaded as a raw diff.
This diff has been restricted to the following files: 'contrib/usher.cc'
#
#
# patch "contrib/usher.cc"
# from [cb295e80eb1af0bd7d55cde7da973c340a05deb2]
# to [599b754c575694458973cf7ecd5be5fd5a03c06d]
#
============================================================
--- contrib/usher.cc cb295e80eb1af0bd7d55cde7da973c340a05deb2
+++ contrib/usher.cc 599b754c575694458973cf7ecd5be5fd5a03c06d
@@ -1,3 +1,4 @@
+// -*- mode: C++; c-file-style: "gnu"; indent-tabs-mode: nil -*-
// Timothy Brownawell <tbrownaw@gmail.com>
// GPL v2
//
@@ -691,10 +692,16 @@ struct server
c = servers_by_host.find(*i);
if (c != servers_by_host.end()) {
list<map<string, shared_ptr<server> >::iterator>::iterator j;
- for (j = c->second->by_host.begin(); j != c->second->by_host.end(); ++j)
- if ((*j)->first == *i) {
- servers_by_host.erase(*j);
- c->second->by_host.erase(j);
+ for (j = c->second->by_host.begin(); j != c->second->by_host.end();)
+ {
+ list<map<string, shared_ptr<server> >::iterator>::iterator j_saved
+ = j;
+ ++j;
+ if ((*j_saved)->first == *i)
+ {
+ servers_by_host.erase(*j_saved);
+ c->second->by_host.erase(j_saved);
+ }
}
}
c = servers_by_host.insert(make_pair(*i, me)).first;