X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESH_I%2FSMESH_Gen_i.cxx;h=5f7d8da91714754e5fd7edaa2f580af1c5c101b5;hp=5e962796a3cd8d4d092d71924647089200ac0c1e;hb=081f12102e2a2aebef15760d5f6d06b4834ae26e;hpb=859219d5983802ba196ba7882eedbde09dc87be7 diff --git a/src/SMESH_I/SMESH_Gen_i.cxx b/src/SMESH_I/SMESH_Gen_i.cxx index 5e962796a..5f7d8da91 100644 --- a/src/SMESH_I/SMESH_Gen_i.cxx +++ b/src/SMESH_I/SMESH_Gen_i.cxx @@ -339,10 +339,17 @@ SMESH_Gen_i::~SMESH_Gen_i() MESSAGE( "SMESH_Gen_i::~SMESH_Gen_i" ); // delete hypothesis creators - map::iterator itHyp; + map::iterator itHyp, itHyp2; for (itHyp = myHypCreatorMap.begin(); itHyp != myHypCreatorMap.end(); itHyp++) { - delete (*itHyp).second; + // same creator can be mapped under different names + GenericHypothesisCreator_i* creator = (*itHyp).second; + if ( !creator ) + continue; + delete creator; + for (itHyp2 = itHyp; itHyp2 != myHypCreatorMap.end(); itHyp2++) + if ( creator == (*itHyp2).second ) + (*itHyp2).second = 0; } myHypCreatorMap.clear();