From 02edea9ef59f960a1f657e9b8891331b0e6f6f5c Mon Sep 17 00:00:00 2001
From: Christophe Geuzaine <cgeuzaine@ulg.ac.be>
Date: Thu, 30 Mar 2017 17:13:06 +0800
Subject: [PATCH] fix bug

---
 Mesh/meshGFace.cpp | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/Mesh/meshGFace.cpp b/Mesh/meshGFace.cpp
index 95d26ebad3..13772140cf 100644
--- a/Mesh/meshGFace.cpp
+++ b/Mesh/meshGFace.cpp
@@ -1794,14 +1794,18 @@ static bool buildConsecutiveListOfVertices(GFace *gf, GEdgeLoop &gel,
 
     std::vector<MVertex*> edgeLoop;
     if(found._sign == 1){
-      edgeLoop.push_back(found.ge->getBeginVertex()->mesh_vertices[0]);
-      for(unsigned int i = 0; i <found.ge->mesh_vertices.size(); i++)
-        edgeLoop.push_back(found.ge->mesh_vertices[i]);
+      if(found.ge->getBeginVertex()){
+        edgeLoop.push_back(found.ge->getBeginVertex()->mesh_vertices[0]);
+        for(unsigned int i = 0; i <found.ge->mesh_vertices.size(); i++)
+          edgeLoop.push_back(found.ge->mesh_vertices[i]);
+      }
     }
     else{
-      edgeLoop.push_back(found.ge->getEndVertex()->mesh_vertices[0]);
-      for(int i = found.ge->mesh_vertices.size() - 1; i >= 0; i--)
-        edgeLoop.push_back(found.ge->mesh_vertices[i]);
+      if(found.ge->getEndVertex()){
+        edgeLoop.push_back(found.ge->getEndVertex()->mesh_vertices[0]);
+        for(int i = found.ge->mesh_vertices.size() - 1; i >= 0; i--)
+          edgeLoop.push_back(found.ge->mesh_vertices[i]);
+      }
     }
 
     if(MYDEBUG)
-- 
GitLab