[Positioning] Fix ReferencePoint::delete_generated_requests()
Use a while loop instead of for to check the requests.
This commit is contained in:
parent
232551c150
commit
2b12e49374
|
@ -136,35 +136,35 @@ void ReferencePoint::delete_requests()
|
||||||
*/
|
*/
|
||||||
bool ReferencePoint::delete_generated_requests(void)
|
bool ReferencePoint::delete_generated_requests(void)
|
||||||
{
|
{
|
||||||
bool modified = false ;
|
unsigned int nb_requests = requests.size() ;
|
||||||
|
vector<CalibrationRequest*>::iterator r = requests.begin() ;
|
||||||
for (vector<CalibrationRequest*>::iterator r = requests.begin() ;
|
while (r != requests.end())
|
||||||
r != requests.end() ; ++r)
|
|
||||||
{
|
{
|
||||||
assert(*r) ;
|
assert(*r) ;
|
||||||
if ((*r)->get_mobile() == NULL)
|
|
||||||
{
|
|
||||||
requests.erase(r) ;
|
|
||||||
modified = true ;
|
|
||||||
continue ;
|
|
||||||
}
|
|
||||||
|
|
||||||
unordered_map<std::string, AccessPoint>::const_iterator ap ;
|
unordered_map<std::string, AccessPoint>::const_iterator ap ;
|
||||||
|
|
||||||
|
if ((*r)->get_mobile() == NULL)
|
||||||
|
goto delete_request ;
|
||||||
|
|
||||||
for (ap = Stock::get_aps().begin() ; ap != Stock::get_aps().end() ;
|
for (ap = Stock::get_aps().begin() ; ap != Stock::get_aps().end() ;
|
||||||
++ap)
|
++ap)
|
||||||
if ((*r)->get_mobile()->get_mac_addr() ==
|
if ((*r)->get_mobile()->get_mac_addr() ==
|
||||||
ap->second.get_mac_addr())
|
ap->second.get_mac_addr())
|
||||||
break ;
|
break ;
|
||||||
|
|
||||||
if (ap == Stock::get_aps().end()) // r is not associated with an AP
|
if (ap != Stock::get_aps().end()) // r still associated with an AP
|
||||||
{
|
{
|
||||||
Stock::delete_calibration_request(**r) ;
|
++r ;
|
||||||
requests.erase(r) ;
|
continue ; // Do not delete r
|
||||||
modified = true ;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// r is not assotiated with an AP, delete it
|
||||||
|
delete_request:
|
||||||
|
Stock::delete_calibration_request(**r) ;
|
||||||
|
r = requests.erase(r) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
return modified ;
|
return nb_requests != requests.size() ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue