Salome HOME
#20238 EDF 22226 - problem of remeshing
[modules/smesh.git] / src / SMESH / SMESH_Algo.cxx
index d4930818e22508fbb5daed1a4ff2242a91702e11..bdc93b1a12322f164fcac8eec8c1864ff88dbd70 100644 (file)
@@ -950,10 +950,9 @@ void SMESH_Algo::InitComputeError()
 {
   _error = COMPERR_OK;
   _comment.clear();
-  list<const SMDS_MeshElement*>::iterator elem = _badInputElements.begin();
-  for ( ; elem != _badInputElements.end(); ++elem )
-    if ( (*elem)->GetID() < 1 )
-      delete *elem;
+  for ( const SMDS_MeshElement* & elem : _badInputElements )
+    if ( !elem->IsNull() && elem->GetID() < 1 )
+      delete elem;
   _badInputElements.clear();
   _mesh = 0;
 
@@ -1015,6 +1014,7 @@ void SMESH_Algo::addBadInputElements(const SMESHDS_SubMesh* sm,
       SMDS_ElemIteratorPtr eIt = sm->GetElements();
       while ( eIt->more() ) addBadInputElement( eIt->next() );
     }
+    _mesh = sm->GetParent();
   }
 }