Browse Source

fix for AI freeze/crash

Dickinson Lo 18 years ago
parent
commit
1f37ba4d24
1 changed files with 7 additions and 2 deletions
  1. 7 2
      panda/src/ode/odeTriMeshData.cxx

+ 7 - 2
panda/src/ode/odeTriMeshData.cxx

@@ -57,12 +57,17 @@ print_data(const string &marker) {
 void OdeTriMeshData::
 remove_data(OdeTriMeshData *data) {
   odetrimeshdata_cat.debug() << get_class_type() << "::remove_data(" << data->get_id() << ")" << "\n";
-  TriMeshDataMap::iterator iter = _tri_mesh_data_map.begin();  
+  TriMeshDataMap::iterator iter = _tri_mesh_data_map.begin();
+  int i = 0;
   for (;iter != _tri_mesh_data_map.end(); ++iter) {
+    odetrimeshdata_cat.debug() << i<< " iter->first=" << iter->first << " iter->second=" << iter->second <<"\n";
     if ( iter->second == data ) {
+      odetrimeshdata_cat.debug() << "erasing iter->first=" << iter->first << " iter->second=" << iter->second <<"\n";
       _tri_mesh_data_map.erase(iter);
-      iter = _tri_mesh_data_map.end();
+      return;
+      //iter = _tri_mesh_data_map.end();
     }
+    ++i;
   }
 }