From bb95ea9ea68c78b94000dbb05db15a38e2c72df4 Mon Sep 17 00:00:00 2001 From: Amaury Johnan <amjohnen@gmail.com> Date: Fri, 28 Oct 2016 09:41:41 +0000 Subject: [PATCH] add some delete[] & Remove createElement no more used, should use MElementFactory anyway --- Geo/MElement.cpp | 86 ------------------------------------- Geo/MElement.h | 4 -- Mesh/meshGFaceRecombine.cpp | 7 +++ 3 files changed, 7 insertions(+), 90 deletions(-) diff --git a/Geo/MElement.cpp b/Geo/MElement.cpp index d6322bdacb..ad3e570db0 100644 --- a/Geo/MElement.cpp +++ b/Geo/MElement.cpp @@ -52,92 +52,6 @@ MElement::MElement(int num, int part) : _visible(1) } } -MElement* MElement::createElement(int tag, const std::vector<MVertex*> &vertices, - int num, int part) -{ - const int type = ElementType::ParentTypeFromTag(tag); - const int order = ElementType::OrderFromTag(tag); - const bool serendipity = ElementType::SerendipityFromTag(tag) > 1; - - if (order == 0) { - Msg::Error("p0 elements can not be created (tag %d)", tag); - return NULL; - } - - switch (type) { - - case TYPE_PNT: - return new MPoint(vertices, num, part); - - case TYPE_LIN: - if (order == 1) - return new MLine(vertices, num, part); - else if (order == 2) - return new MLine3(vertices, num, part); - else - return new MLineN(vertices, num, part); - - case TYPE_TRI: - if (order == 1) - return new MTriangle(vertices, num, part); - else if (order == 2) - return new MTriangle6(vertices, num, part); - else - return new MTriangleN(vertices, order, num, part); - - case TYPE_QUA: - if (order == 1) - return new MQuadrangle(vertices, num, part); - else if (order == 2 && serendipity) - return new MQuadrangle8(vertices, num, part); - else if (order == 2) - return new MQuadrangle9(vertices, num, part); - else - return new MQuadrangleN(vertices, order, num, part); - - case TYPE_TET: - if (order == 1) - return new MTetrahedron(vertices, num, part); - else if (order == 2) - return new MTetrahedron10(vertices, num, part); - else - return new MTetrahedronN(vertices, order, num, part); - - case TYPE_PYR: - if (order == 1) - return new MPyramid(vertices, num, part); - else - return new MPyramidN(vertices, order, num, part); - - case TYPE_PRI: - if (order == 1) - return new MPrism(vertices, num, part); - else if (order == 2 && serendipity) - return new MPrism15(vertices, num, part); - else if (order == 2) - return new MPrism18(vertices, num, part); - else - return new MPrismN(vertices, order, num, part); - - case TYPE_TRIH: - return new MTrihedron(vertices, num, part); - - case TYPE_HEX: - if (order == 1) - return new MHexahedron(vertices, num, part); - else if (order == 2 && serendipity) - return new MHexahedron20(vertices, num, part); - else if (order == 2) - return new MHexahedron27(vertices, num, part); - else - return new MHexahedronN(vertices, order, num, part); - - default: - break; - } - return NULL; -} - void MElement::setTolerance(const double tol) { _isInsideTolerance = tol; diff --git a/Geo/MElement.h b/Geo/MElement.h index 8c3b84b5e0..50fc874c3c 100644 --- a/Geo/MElement.h +++ b/Geo/MElement.h @@ -47,10 +47,6 @@ class MElement MElement(int num=0, int part=0); virtual ~MElement(){} - // Create an element from tag - static MElement* createElement(int tag, const std::vector<MVertex*>&, - int num=0, int part=0); - // set/get the tolerance for isInside() test static void setTolerance(const double tol); static double getTolerance(); diff --git a/Mesh/meshGFaceRecombine.cpp b/Mesh/meshGFaceRecombine.cpp index 730710d27f..f2bc44a43a 100644 --- a/Mesh/meshGFaceRecombine.cpp +++ b/Mesh/meshGFaceRecombine.cpp @@ -117,6 +117,7 @@ namespace { for (int i = 0; i < numEdges; ++i) { edges[i]->print(); } + delete[] v; return false; } for (int i = 2; i < numEdges; ++i) { @@ -129,6 +130,7 @@ namespace { for (int i = 0; i < numEdges; ++i) { edges[i]->print(); } + delete[] v; return false; } } @@ -138,6 +140,7 @@ namespace { for (int i = 0; i < numEdges; ++i) { edges[i]->print(); } + delete[] v; return false; } delete[] v; @@ -4443,6 +4446,8 @@ double Rec2DVertex::/*vertQual_*/getGainMerge(const Rec2DVertex *rv, sumQualEdge -= Recombine2D::getWeightEdgeBase() * edges[i]->getQual(); } + delete[] numAngle; + delete[] qualAngle; return Rec2DVertex::getQual(sumQualAngle/sumAngle, sumQualEdge/sumEdge, numElem) - getQual() - rv->getQual() ; @@ -4484,6 +4489,8 @@ double Rec2DVertex::/*vertEdgeQual_*/getGainMerge(const Rec2DVertex *rv) const int numElem = _elements.size() + rv->_elements.size() - 4; ans += getQualDegree(numElem) + sumQualAngle / sumAngle; + delete[] qualAngle; + delete[] angleWeight; return ans; } -- GitLab