Melchior, Selon Melchior Franz :
> --- 435,443 ---- > _purgeListeners = false; > map<int, FGNasalListener *>::iterator it; > ! for(it = _listener.end(); --it != _listener.end();) { > FGNasalListener *nl = it->second; > if(nl->_dead) { > ! _listener.erase(it); > delete nl; > } > } I am pretty sure it is illegal to use an iterator after it was used for erasing an item. I think the code below is better and works on every systems : _purgeListeners = false; map<int, FGNasalListener *>::iterator it; for(it = _listener.end(); --it != _listener.end();) { FGNasalListener *nl = it->second; if(nl->_dead) { map<int, FGNasalListener *>::iterator it2 = it++; <= use a copy of the iterator _listener.erase(it2); <= to erase the item delete nl; } } But I thing the purpose of reverse iterators is exactly to do that and the use of them should be more valid in the end. -Fred -- Frédéric Bouvier http://frfoto.free.fr Photo gallery - album photo http://www.fotolia.fr/p/2278/partner/2278 Other photo gallery http://fgsd.sourceforge.net/ FlightGear Scenery Designer ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Flightgear-devel mailing list Flightgear-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/flightgear-devel