diff --git a/panda/src/ode/odeTriMeshData.cxx b/panda/src/ode/odeTriMeshData.cxx index d96163183e..ff63ea45bd 100755 --- a/panda/src/ode/odeTriMeshData.cxx +++ b/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; } }