From a57f08a9da05f4b6dd09ef8861e2b3764a83e25c Mon Sep 17 00:00:00 2001 From: aothms Date: Sun, 21 Feb 2021 16:37:33 +0100 Subject: [PATCH] Fix map invalidation reported by valgrind --- src/ifcgeom/kernels/cgal/CgalKernel.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/ifcgeom/kernels/cgal/CgalKernel.cpp b/src/ifcgeom/kernels/cgal/CgalKernel.cpp index 1d66f5a940..7a279f7c03 100644 --- a/src/ifcgeom/kernels/cgal/CgalKernel.cpp +++ b/src/ifcgeom/kernels/cgal/CgalKernel.cpp @@ -831,6 +831,10 @@ bool CgalKernel::process_extrusion(const cgal_face_t& bottom_face, const taxonom } auto p = external_edges.insert({ { i0, i1 }, { i, j} }); if (!p.second) { + // Mark as internal before erasure in external + // This is {i,j} at the time the edge use was inserted. + internal_edges.insert(p.first->second); + // not inserted, remove external_edges.erase(p.first); @@ -838,8 +842,6 @@ bool CgalKernel::process_extrusion(const cgal_face_t& bottom_face, const taxonom // point_map. i is index in faces_to_extrude, j is segment index in wire. internal_edges.insert({ i, j }); - // This is {i,j} at the time the edge use was inserted. - internal_edges.insert(p.first->second); } } i++;