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