Salome HOME
22573: [CEA 1154] Regression on a blsurf mesh (crash on test_periodicity_LR_ONLY.py)
[modules/smesh.git] / src / SMESH / SMESH_Mesh.cxx
index aac87a540f26e24a594d6c852ca88b4508e7a38d..24042d9da45baf471bf2e72e06f5e63857786892 100644 (file)
@@ -181,22 +181,10 @@ SMESH_Mesh::~SMESH_Mesh()
 {
   MESSAGE("SMESH_Mesh::~SMESH_Mesh");
 
-  // Unassign algorithms in order to have all SMESH_subMeshEventListenerData deleted (22874)
+  // avoid usual removal of elements while processing RemoveHypothesis( algo ) event
   SMESHDS_SubMeshIteratorPtr smIt = _myMeshDS->SubMeshes();
-  while ( smIt->more() ) {
-    // avoid usual removal of elements while processing RemoveHypothesis( algo ) event
+  while ( smIt->more() )
     const_cast<SMESHDS_SubMesh*>( smIt->next() )->Clear();
-  }
-  const ShapeToHypothesis & hyps = _myMeshDS->GetHypotheses();
-  for ( ShapeToHypothesis::Iterator s2hyps( hyps ); s2hyps.More(); s2hyps.Next() )
-  {
-    const TopoDS_Shape& s = s2hyps.Key();
-    THypList         hyps = s2hyps.ChangeValue(); // copy
-    THypList::const_iterator h = hyps.begin();
-    for ( ; h != hyps.end(); ++h )
-      if ( (*h)->GetType() != SMESHDS_Hypothesis::PARAM_ALGO )
-        RemoveHypothesis( s, (*h)->GetID() );
-  }
 
   // issue 0020340: EDF 1022 SMESH : Crash with FindNodeClosestTo in a second new study
   //   Notify event listeners at least that something happens
@@ -2276,8 +2264,8 @@ void SMESH_Mesh::fillAncestorsMap(const TopoDS_Shape& theShape)
         TopTools_ListIteratorOfListOfShape ancIt (ancList);
         while ( ancIt.More() && ancIt.Value().ShapeType() >= memberType )
           ancIt.Next();
-        if ( ancIt.More() )
-          ancList.InsertBefore( theShape, ancIt );
+        if ( ancIt.More() ) ancList.InsertBefore( theShape, ancIt );
+        else                ancList.Append( theShape );
       }
   }
   else // else added for 52457: Addition of hypotheses is 8 time longer than meshing