- bool typeMatch = false;
- int safety_count = 0;
- it = ident_navaids.lower_bound(ident);
- while(!typeMatch) {
- nav_list_type n0 = it->second;
- // local copy, so we should be able to do anything with n0.
- // Remove the types that don't match request.
- for(nav_list_iterator it0 = n0.begin(); it0 != n0.end();) {
- FGNavRecord* nv = *it0;
- if(nv->get_type() == iType) {
- typeMatch = true;
- ++it0;
- } else {
- it0 = n0.erase(it0);
- }
- }
- if(typeMatch) {
- return(n0);
- }
- if(it == ident_navaids.begin()) {
- // We didn't find a match before reaching the beginning of the map
- n0.clear();
- return(n0);
- }
- safety_count++;
- if(safety_count == 1000000) {
- SG_LOG(SG_INSTR, SG_ALERT,
- "safety_count triggered exit from while loop in findFirstByIdent!");
- break;
- }
- ++it;
- if(it == ident_navaids.end()) {
- n0.clear();
- return(n0);
- }
- }
+ bool typeMatch = false;
+ int safety_count = 0;
+ it = ident_navaids.lower_bound(ident);
+ while(!typeMatch) {
+ nav_list_type n0 = it->second;
+ // local copy, so we should be able to do anything with n0.
+ // Remove the types that don't match request.
+ for(nav_list_iterator it0 = n0.begin(); it0 != n0.end();) {
+ FGNavRecord* nv = *it0;
+ if(nv->get_type() == iType) {
+ typeMatch = true;
+ ++it0;
+ } else {
+ it0 = n0.erase(it0);
+ }
+ }
+ if(typeMatch) {
+ return(n0);
+ }
+ if(it == ident_navaids.begin()) {
+ // We didn't find a match before reaching the beginning of the map
+ n0.clear();
+ return(n0);
+ }
+ safety_count++;
+ if(safety_count == 1000000) {
+ SG_LOG(SG_INSTR, SG_ALERT,
+ "safety_count triggered exit from while loop in findFirstByIdent!");
+ break;
+ }
+ ++it;
+ if(it == ident_navaids.end()) {
+ n0.clear();
+ return(n0);
+ }
+ }