- JMutexAutoLock lock(m_mutex);
- //m_ips.erase(m_ips.find(ip));
- // Find out all ip-name pairs that match the ip or name
- std::set<std::string> ips_to_delete;
- for(std::map<std::string, std::string>::iterator
- i = m_ips.begin();
- i != m_ips.end(); i++)
- {
- if(i->first == ip_or_name || i->second == ip_or_name)
- ips_to_delete.insert(i->first);
- }
- // Erase them
- for(std::set<std::string>::iterator
- i = ips_to_delete.begin();
- i != ips_to_delete.end(); i++)
- {
- m_ips.erase(*i);
+ MutexAutoLock lock(m_mutex);
+ for (StringMap::iterator it = m_ips.begin(); it != m_ips.end();) {
+ if ((it->first == ip_or_name) || (it->second == ip_or_name)) {
+ m_ips.erase(it++);
+ } else {
+ ++it;
+ }