Fix semantics of std::unique() to actually remove duplicates (hidden memory leak?)

This commit is contained in:
Adam Ierymenko 2015-06-29 10:21:28 -07:00
parent 3f71afd0fb
commit dbee1b38b3
9 changed files with 63 additions and 9 deletions

View file

@ -251,7 +251,7 @@ ZT1_ResultCode Node::processBackgroundTasks(uint64_t now,volatile uint64_t *next
// Attempt to contact network preferred relays that we don't have direct links to
std::sort(networkRelays.begin(),networkRelays.end());
std::unique(networkRelays.begin(),networkRelays.end());
networkRelays.erase(std::unique(networkRelays.begin(),networkRelays.end()),networkRelays.end());
for(std::vector< std::pair<Address,InetAddress> >::const_iterator nr(networkRelays.begin());nr!=networkRelays.end();++nr) {
if (nr->second) {
SharedPtr<Peer> rp(RR->topology->getPeer(nr->first));