From eea556f9a4ca20c7ced4f89e988e1b04e61b00b0 Mon Sep 17 00:00:00 2001 From: Jonathan Lambrechts <jonathan.lambrechts@uclouvain.be> Date: Tue, 23 Oct 2012 16:49:50 +0000 Subject: [PATCH] fix segfault in p2 prism closures generation --- Numeric/polynomialBasis.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Numeric/polynomialBasis.cpp b/Numeric/polynomialBasis.cpp index 0e1062f0a1..1922abd238 100644 --- a/Numeric/polynomialBasis.cpp +++ b/Numeric/polynomialBasis.cpp @@ -1139,6 +1139,8 @@ static void addEdgeNodes(polynomialBasis::clCont &closureFull, const int *edges, for (unsigned int iClosure = 0; iClosure < closureFull.size(); iClosure++) { std::vector<int> &cl = closureFull[iClosure]; for (int iEdge = 0; edges[iEdge] >= 0; iEdge += 2) { + if (cl.empty()) + continue; int n0 = cl[edges[iEdge]]; int n1 = cl[edges[iEdge + 1]]; int oEdge = nodes2edges[n0][n1]; @@ -1485,6 +1487,8 @@ static void generateFaceClosurePrismFull(polynomialBasis::clCont &closureFull, nodeSum2Face[nodeSum] = iFace; } for (unsigned int i = 0; i < closureFull.size(); i++ ) { + if (closureFull[i].empty()) + continue; for (int iFace = 0; iFace < numFaces; iFace++ ) { int nodeSum = 0; for (int iNode = 0; iNode < numFaceNodes; iNode++) -- GitLab