From 6558ee1afa7d4cd30e4119ac605e812d30af32b6 Mon Sep 17 00:00:00 2001 From: Karsten Rink <karsten.rink@ufz.de> Date: Thu, 6 Nov 2014 17:09:00 +0100 Subject: [PATCH] correctly cleared reserved mem again --- MeshLib/MeshGenerators/MeshLayerMapper.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/MeshLib/MeshGenerators/MeshLayerMapper.cpp b/MeshLib/MeshGenerators/MeshLayerMapper.cpp index 656ca3b7bff..f255189eea6 100644 --- a/MeshLib/MeshGenerators/MeshLayerMapper.cpp +++ b/MeshLib/MeshGenerators/MeshLayerMapper.cpp @@ -121,7 +121,10 @@ bool MeshLayerMapper::createRasterLayers(MeshLib::Mesh const& mesh, std::vector< MeshLib::Mesh* bottom (new MeshLib::Mesh(mesh)); if (!layerMapping(*bottom, *rasters[0], 0)) + { + delete top; return false; + } std::size_t const nNodes = mesh.getNNodes(); _nodes.reserve(nLayers * nNodes); @@ -131,14 +134,17 @@ bool MeshLayerMapper::createRasterLayers(MeshLib::Mesh const& mesh, std::vector< [](MeshLib::Element const* elem) { return (elem->getGeomType() == MeshElemType::TRIANGLE);})); _elements.reserve(nElems * (nLayers-1)); - // bottom layer + // add bottom layer std::vector<MeshLib::Node*> const& nodes = bottom->getNodes(); - std::copy(nodes.cbegin(), nodes.cend(), std::back_inserter(_nodes)); + for (MeshLib::Node* node : nodes) + _nodes.push_back(new MeshLib::Node(*node)); + delete bottom; - // the other layers + // add the other layers for (std::size_t i=1; i<nLayers; ++i) addLayerToMesh(*top, i, *rasters[i]); + delete top; return true; } -- GitLab