From 9fc5434205ccd335070636d67171fd2a0d8f9ac2 Mon Sep 17 00:00:00 2001
From: Christophe Geuzaine <cgeuzaine@ulg.ac.be>
Date: Fri, 11 Jul 2008 17:04:05 +0000
Subject: [PATCH] try to fix crash obsevred by Tom De Vuyst

---
 Geo/GFace.cpp | 23 ++++++++++++-----------
 1 file changed, 12 insertions(+), 11 deletions(-)

diff --git a/Geo/GFace.cpp b/Geo/GFace.cpp
index 39b22ca7b5..5cc70e5069 100644
--- a/Geo/GFace.cpp
+++ b/Geo/GFace.cpp
@@ -158,19 +158,20 @@ std::string GFace::getAdditionalInfoString()
 {
   if(l_edges.empty()) return std::string("");
 
-  char tmp[256];
+  std::string str("{");
+  std::list<GEdge*>::const_iterator it = l_edges.begin();
   if(l_edges.size() > 10){
-    sprintf(tmp, "{%d, ..., %d}", (*l_edges.begin())->tag(), (*l_edges.end())->tag());
-    return std::string(tmp);
+    std::list<GEdge*>::const_iterator ite = l_edges.end();
+    char tmp[256];
+    sprintf(tmp, "%d, ..., %d", (*it)->tag(), (*ite)->tag());
   }
-
-  std::string str("");
-  std::list<GEdge*>::const_iterator it = l_edges.begin();
-  str += "{";
-  for(; it != l_edges.end(); it++){
-    if(it != l_edges.begin()) str += ",";
-    sprintf(tmp, "%d", (*it)->tag());
-    str += tmp;
+  else{
+    for(; it != l_edges.end(); it++){
+      if(it != l_edges.begin()) str += ",";
+      char tmp[256];
+      sprintf(tmp, "%d", (*it)->tag());
+      str += tmp;
+    }
   }
   str += "}";
   return str;
-- 
GitLab