From 6f3bbaaad3e1690133d082f506e489a2460029b7 Mon Sep 17 00:00:00 2001
From: Tuomas Karna <tuomas.karna@uclouvain.be>
Date: Wed, 13 Apr 2011 08:36:49 +0000
Subject: [PATCH] fix memory leak in ExtrudeParams

---
 Geo/ExtrudeParams.cpp | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/Geo/ExtrudeParams.cpp b/Geo/ExtrudeParams.cpp
index 42c55d2eef..cda79dc8e0 100644
--- a/Geo/ExtrudeParams.cpp
+++ b/Geo/ExtrudeParams.cpp
@@ -156,15 +156,14 @@ ExtrusionElementMap::addExtrudedElem(MElement* source, MElement* extrudedElem)
   if(it != _extrudedElements.end())
     it->second.push_back(extrudedElem);
   else {
-   std::vector<MElement*>* vec = new std::vector<MElement*>();
-   int totalNbElems = 0;
-   for (int i = 0;i<_parent->mesh.NbLayer;i++)
-     totalNbElems += _parent->mesh.NbElmLayer[i];
-   vec->reserve(totalNbElems);
-   vec->push_back(extrudedElem);
-   _extrudedElements.insert(std::pair<MElement*, std::vector<MElement*> >(source, *vec));
+    int totalNbElems = 0;
+    for (int i = 0; i <_parent->mesh.NbLayer;i++)
+      totalNbElems += _parent->mesh.NbElmLayer[i];
+    // This expression automatically creates the new map key
+    std::vector<MElement*> *vec = &(_extrudedElements[source]);
+    vec->reserve( totalNbElems );
+    vec->push_back( extrudedElem );
   }
-  SPoint3 np = extrudedElem->barycenter(), sp = source->barycenter();
 }
 
 // Propagates the partition information from the source elements to
-- 
GitLab