X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESH%2FSMESH_Mesh.cxx;h=5ddf9a5157cf9e6c54f42e9c726dd9325a80da85;hb=b6c9c862b491312d17a4ddec74a9b6c5b96f5c11;hp=695027dba0a2037b332407799cf6adff46af9778;hpb=e49d9ab359218d64774383b4225508849809f06a;p=modules%2Fsmesh.git diff --git a/src/SMESH/SMESH_Mesh.cxx b/src/SMESH/SMESH_Mesh.cxx index 695027dba..5ddf9a515 100644 --- a/src/SMESH/SMESH_Mesh.cxx +++ b/src/SMESH/SMESH_Mesh.cxx @@ -110,6 +110,11 @@ SMESH_Mesh::~SMESH_Mesh() { INFOS("SMESH_Mesh::~SMESH_Mesh"); + // issue 0020340: EDF 1022 SMESH : Crash with FindNodeClosestTo in a second new study + // Notify event listeners at least that something happens + if ( SMESH_subMesh * sm = GetSubMeshContaining(1)) + sm->ComputeStateEngine( SMESH_subMesh::MESH_ENTITY_REMOVED ); + // delete groups std::map < int, SMESH_Group * >::iterator itg; for (itg = _mapGroup.begin(); itg != _mapGroup.end(); itg++) { @@ -177,6 +182,12 @@ void SMESH_Mesh::ShapeToMesh(const TopoDS_Shape & aShape) (TopAbs_ShapeEnum) ancType, _mapAncestors ); } + else + { + _isShapeToMesh = false; + _shapeDiagonal = 0.0; + _myMeshDS->ShapeToMesh( PseudoShape() ); + } } //=======================================================================