From 9f3e27e0aa0768a65b687925faa740d8a417509c Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Tue, 11 Apr 2017 00:53:03 +0200 Subject: [PATCH] BUG: indexing in extendedEdgeMesh::add fails (fixes #448) - 1st problem arises when there are edges, but edgeNormals is empty. The UIndirectList fails (zero elements, non-zero addressing) - further problem occurs if there is a mismatch in the number of edges and edges normals (incorrect indexing on loop). --- .../extendedEdgeMesh/extendedEdgeMesh.C | 35 ++++++++++++++----- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/src/edgeMesh/extendedEdgeMesh/extendedEdgeMesh.C b/src/edgeMesh/extendedEdgeMesh/extendedEdgeMesh.C index 49e240abdf..331bfe2023 100644 --- a/src/edgeMesh/extendedEdgeMesh/extendedEdgeMesh.C +++ b/src/edgeMesh/extendedEdgeMesh/extendedEdgeMesh.C @@ -1260,20 +1260,36 @@ void Foam::extendedEdgeMesh::add(const extendedEdgeMesh& fem) // ~~~~~~~ // Combine normals - DynamicField newNormals(normals().size()+fem.normals().size()); + DynamicField newNormals + ( + normals().size() + + fem.normals().size() + ); newNormals.append(normals()); newNormals.append(fem.normals()); // Combine and re-index into newNormals - labelListList newEdgeNormals(edgeNormals().size()+fem.edgeNormals().size()); - UIndirectList(newEdgeNormals, reverseEdgeMap) = - edgeNormals(); - UIndirectList(newEdgeNormals, reverseFemEdgeMap) = - fem.edgeNormals(); - forAll(reverseFemEdgeMap, i) + labelListList newEdgeNormals + ( + edgeNormals().size() + + fem.edgeNormals().size() + ); + + UIndirectList + ( + newEdgeNormals, + SubList