From 3d973f7c36208f56413533ea5e32f6b19f1b6eaf Mon Sep 17 00:00:00 2001
From: Christophe Geuzaine <cgeuzaine@ulg.ac.be>
Date: Fri, 18 Jan 2008 22:23:03 +0000
Subject: [PATCH] fix 2d mesh crash with vc++; 3d still crsahes

---
 Mesh/BDS.cpp                          | 40 +++++++++++++--------------
 Mesh/meshGFace.cpp                    | 10 +++----
 Mesh/meshGRegionDelaunayInsertion.cpp |  4 +--
 3 files changed, 25 insertions(+), 29 deletions(-)

diff --git a/Mesh/BDS.cpp b/Mesh/BDS.cpp
index 9730b05640..53fd8ea1ec 100644
--- a/Mesh/BDS.cpp
+++ b/Mesh/BDS.cpp
@@ -1,4 +1,4 @@
-// $Id: BDS.cpp,v 1.90 2008-01-18 20:02:28 geuzaine Exp $
+// $Id: BDS.cpp,v 1.91 2008-01-18 22:23:03 geuzaine Exp $
 //
 // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
 //
@@ -484,28 +484,26 @@ template < class IT > void DESTROOOY(IT beg, IT end)
 void BDS_Mesh::cleanup()
 {
   {
-    for (std::list<BDS_Face*> :: iterator it = triangles.begin();
-	 it != triangles.end();
-	 it++)
-      {
-	while (it != triangles.end() && (*it)->deleted)
-	  {
-	    delete *it;
-	    it = triangles.erase (it);
-	  }
-      }	   
+    std::list<BDS_Face*> :: iterator it = triangles.begin();
+    while(it != triangles.end()){
+      if((*it)->deleted){
+	delete *it;
+	it = triangles.erase(it);
+      }
+      else
+	it++;
+    }
   }
   { 
-    for (std::list<BDS_Edge*> :: iterator it = edges.begin();
-	 it != edges.end();
-	 it++)
-      {
-	while (it != edges.end() && (*it)->deleted)
-	  {
-	    delete *it;
-	    it = edges.erase (it);
-	  }	
-      }	   
+    std::list<BDS_Edge*> :: iterator it = edges.begin();
+    while(it != edges.end()){
+      if((*it)->deleted){
+	delete *it;
+	it = edges.erase(it);
+      }	
+      else
+	it++;
+    }	   
   } 
 }
 
diff --git a/Mesh/meshGFace.cpp b/Mesh/meshGFace.cpp
index af3ef98356..776349d050 100644
--- a/Mesh/meshGFace.cpp
+++ b/Mesh/meshGFace.cpp
@@ -1,4 +1,4 @@
-// $Id: meshGFace.cpp,v 1.107 2008-01-18 20:02:28 geuzaine Exp $
+// $Id: meshGFace.cpp,v 1.108 2008-01-18 22:23:03 geuzaine Exp $
 //
 // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
 //
@@ -1486,8 +1486,6 @@ bool gmsh2DMeshGenerator ( GFace *gf , int RECUR_ITER, bool debug = true)
       }
   }
 
-
-
   it = emb_edges.begin();
   while(it != emb_edges.end())
     {
@@ -1507,6 +1505,7 @@ bool gmsh2DMeshGenerator ( GFace *gf , int RECUR_ITER, bool debug = true)
 	++itt;
       }
   }
+
   m->cleanup();
 
   {
@@ -1528,7 +1527,6 @@ bool gmsh2DMeshGenerator ( GFace *gf , int RECUR_ITER, bool debug = true)
   }
 
 
-
   m->cleanup();
   m->del_point(m->find_point(-1));
   m->del_point(m->find_point(-2));
@@ -2254,8 +2252,8 @@ void meshGFace::operator() (GFace *gf)
     {
       Msg(DEBUG1, "Generating the mesh");
       if(noseam (gf) || gf->getNativeType() == GEntity::GmshModel || gf->edgeLoops.empty()){
-	gmsh2DMeshGenerator(gf,0, true);
-	//gmsh2DMeshGenerator(gf,0, false);
+	//gmsh2DMeshGenerator(gf,0, true);
+	gmsh2DMeshGenerator(gf,0, false);
       }
       else{
 	if(!gmsh2DMeshGeneratorPeriodic(gf,false))
diff --git a/Mesh/meshGRegionDelaunayInsertion.cpp b/Mesh/meshGRegionDelaunayInsertion.cpp
index 38236bb153..914fda3de9 100644
--- a/Mesh/meshGRegionDelaunayInsertion.cpp
+++ b/Mesh/meshGRegionDelaunayInsertion.cpp
@@ -1,4 +1,4 @@
-// $Id: meshGRegionDelaunayInsertion.cpp,v 1.29 2008-01-18 20:02:28 geuzaine Exp $
+// $Id: meshGRegionDelaunayInsertion.cpp,v 1.30 2008-01-18 22:23:03 geuzaine Exp $
 //
 // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
 //
@@ -885,7 +885,7 @@ void insertVerticesInRegion (GRegion *gr)
 	}
     }
 
-  
+
   while (1)
     {
       if (allTets.begin() == allTets.end() ) break;
-- 
GitLab