Delete correct rpt
iterator is changed by erase vector function thus we were deleting incorrect rpt from vector and leaving memory unstable...
This commit is contained in:
parent
55cefd6e64
commit
4374454783
|
@ -233,8 +233,8 @@ void CP25Reflector::run()
|
|||
|
||||
for (std::vector<CP25Repeater*>::iterator it = m_repeaters.begin(); it != m_repeaters.end(); ++it) {
|
||||
if (CUDPSocket::match((*it)->m_addr, rpt->m_addr)) {
|
||||
m_repeaters.erase(it);
|
||||
delete *it;
|
||||
m_repeaters.erase(it);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -304,8 +304,8 @@ void CP25Reflector::run()
|
|||
LogMessage("Removing %s (%s) disappeared", (*it)->m_callsign.c_str(),
|
||||
CUDPSocket::display((*it)->m_addr, buff, 80U));
|
||||
|
||||
m_repeaters.erase(it);
|
||||
delete *it;
|
||||
m_repeaters.erase(it);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue