Frederic Bouvier wrote:

> > try this patch :
> 
> No, it is not so simple. begin() is a special case where we can't do --
> 
> Try the one below

I am a bit noisy today, sorry. It isn't easy to debug by doing one test 
every 15 min. The patch below should make it. The iterator needed to be 
post-decremented, not pre-

-Fred

Index: AIManager.cxx
===================================================================
RCS file: /var/cvs/FlightGear-0.9/FlightGear/src/AIModel/AIManager.cxx,v
retrieving revision 1.11
diff -u -r1.11 AIManager.cxx
--- a/AIManager.cxx     17 May 2004 08:45:33 -0000      1.11
+++ b/AIManager.cxx     19 May 2004 07:34:53 -0000
@@ -147,9 +147,14 @@
                 if ((*ai_list_itr)->getDie()) {
                    freeID((*ai_list_itr)->getID());
                    delete (*ai_list_itr);
-                   ai_list.erase(ai_list_itr);
-                   --ai_list_itr;
                    --numObjects;
+                   if ( ai_list_itr == ai_list.begin() ) {
+                       ai_list.erase(ai_list_itr);
+                       ai_list_itr = ai_list.begin();
+                       continue;
+                   } else {
+                       ai_list.erase(ai_list_itr--);
+                   }
                 } else {
                    fetchUserState();
                    if ((*ai_list_itr)->isa(FGAIBase::otThermal)) {



_______________________________________________
Flightgear-devel mailing list
[EMAIL PROTECTED]
http://mail.flightgear.org/mailman/listinfo/flightgear-devel

Reply via email to