From 77697393fe906cf321138973a77c6512cfca8f2d Mon Sep 17 00:00:00 2001 From: Christophe Geuzaine <cgeuzaine@ulg.ac.be> Date: Sat, 27 Aug 2011 20:41:49 +0000 Subject: [PATCH] don't crash if meshMaster is not available (can happen e.g. if tag has been changed after face creation) --- Mesh/meshGFace.cpp | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/Mesh/meshGFace.cpp b/Mesh/meshGFace.cpp index a49803fc0c..e3bb665277 100644 --- a/Mesh/meshGFace.cpp +++ b/Mesh/meshGFace.cpp @@ -1537,15 +1537,19 @@ void meshGFace::operator() (GFace *gf) if(MeshExtrudedSurface(gf)) return; if(gf->meshMaster() != gf->tag()){ GFace *gff = gf->model()->getFaceByTag(abs(gf->meshMaster())); - if (gff->meshStatistics.status != GFace::DONE){ - gf->meshStatistics.status = GFace::PENDING; + if(gff){ + if (gff->meshStatistics.status != GFace::DONE){ + gf->meshStatistics.status = GFace::PENDING; + return; + } + Msg::Info("Meshing face %d (%s) as a copy of %d", gf->tag(), + gf->getTypeString().c_str(), gf->meshMaster()); + copyMesh(gff, gf); + gf->meshStatistics.status = GFace::DONE; return; } - Msg::Info("Meshing face %d (%s) as a copy of %d", gf->tag(), - gf->getTypeString().c_str(), gf->meshMaster()); - copyMesh(gff, gf); - gf->meshStatistics.status = GFace::DONE; - return; + else + Msg::Warning("Unknown mesh master face %d", abs(gf->meshMaster())); } const char *algo = "Unknown"; -- GitLab