diff --git a/MeshLib/MeshEditing/AddLayerToMesh.cpp b/MeshLib/MeshEditing/AddLayerToMesh.cpp index 13e7454f3d7088a4d23fd9f8c9246e26cb98b8ef..d518a7335e9a05fca4486a931852d1080dae0852 100644 --- a/MeshLib/MeshEditing/AddLayerToMesh.cpp +++ b/MeshLib/MeshEditing/AddLayerToMesh.cpp @@ -53,7 +53,9 @@ MeshLib::Element* extrudeElement(std::vector<MeshLib::Node*> const& subsfc_nodes return nullptr; const unsigned nElemNodes(sfc_elem.getNumberOfBaseNodes()); - auto** new_nodes = new MeshLib::Node*[2 * nElemNodes]; + auto new_nodes = std::unique_ptr<MeshLib::Node* []> { + new MeshLib::Node*[2 * nElemNodes] + }; for (unsigned j=0; j<nElemNodes; ++j) { @@ -65,11 +67,11 @@ MeshLib::Element* extrudeElement(std::vector<MeshLib::Node*> const& subsfc_nodes } if (sfc_elem.getGeomType() == MeshLib::MeshElemType::LINE) - return new MeshLib::Quad(new_nodes); + return new MeshLib::Quad(new_nodes.release()); if (sfc_elem.getGeomType() == MeshLib::MeshElemType::TRIANGLE) - return new MeshLib::Prism(new_nodes); + return new MeshLib::Prism(new_nodes.release()); if (sfc_elem.getGeomType() == MeshLib::MeshElemType::QUAD) - return new MeshLib::Hex(new_nodes); + return new MeshLib::Hex(new_nodes.release()); return nullptr; } diff --git a/MeshLib/MeshEditing/FlipElements.cpp b/MeshLib/MeshEditing/FlipElements.cpp index 4cac837513f3fc554e3b1e7fead251258cd00c51..3a58eed0df30bcd0a2149dc82fda3bfba1c50b18 100644 --- a/MeshLib/MeshEditing/FlipElements.cpp +++ b/MeshLib/MeshEditing/FlipElements.cpp @@ -18,26 +18,30 @@ namespace MeshLib { - -std::unique_ptr<MeshLib::Element> createFlippedElement(MeshLib::Element const& elem, std::vector<MeshLib::Node*> const& nodes) +std::unique_ptr<MeshLib::Element> createFlippedElement( + MeshLib::Element const& elem, std::vector<MeshLib::Node*> const& nodes) { - if (elem.getDimension()>2) + if (elem.getDimension() > 2) return nullptr; - unsigned const n_nodes (elem.getNumberOfNodes()); - auto** elem_nodes = new MeshLib::Node*[n_nodes]; - for (unsigned i=0; i<n_nodes; ++i) + unsigned const n_nodes(elem.getNumberOfNodes()); + auto elem_nodes = + std::unique_ptr<MeshLib::Node* []> { new MeshLib::Node*[n_nodes] }; + for (unsigned i = 0; i < n_nodes; ++i) elem_nodes[i] = nodes[elem.getNode(i)->getID()]; std::swap(elem_nodes[0], elem_nodes[1]); if (elem.getGeomType() == MeshElemType::LINE) - return std::unique_ptr<MeshLib::Line>(new MeshLib::Line(elem_nodes, elem.getID())); + return std::unique_ptr<MeshLib::Line>( + new MeshLib::Line(elem_nodes.release(), elem.getID())); else if (elem.getGeomType() == MeshElemType::TRIANGLE) - return std::unique_ptr<MeshLib::Tri>(new MeshLib::Tri(elem_nodes, elem.getID())); + return std::unique_ptr<MeshLib::Tri>( + new MeshLib::Tri(elem_nodes.release(), elem.getID())); else if (elem.getGeomType() == MeshElemType::QUAD) { std::swap(elem_nodes[2], elem_nodes[3]); - return std::unique_ptr<MeshLib::Quad>(new MeshLib::Quad(elem_nodes, elem.getID())); + return std::unique_ptr<MeshLib::Quad>( + new MeshLib::Quad(elem_nodes.release(), elem.getID())); } return nullptr; }