X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMDS%2FSMDS_MeshIDFactory.cxx;h=ea74aa5769c265c08db96911ad816ab0563c6bd5;hb=refs%2Ftags%2FV9_0_0;hp=74e5e401df8fe78adc9c8fc3cef9dcd840ae3439;hpb=f3e2b7fea2d36b7dbe2df39f3e08e9c4d9b30e6d;p=modules%2Fsmesh.git diff --git a/src/SMDS/SMDS_MeshIDFactory.cxx b/src/SMDS/SMDS_MeshIDFactory.cxx index 74e5e401d..ea74aa576 100644 --- a/src/SMDS/SMDS_MeshIDFactory.cxx +++ b/src/SMDS/SMDS_MeshIDFactory.cxx @@ -20,7 +20,7 @@ // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// SMESH SMDS : implementaion of Salome mesh data structure +// SMESH SMDS : implementation of Salome mesh data structure // File : SMDS_MeshIDFactory.cxx // Author : Jean-Michel BOULCOURT // Module : SMESH @@ -50,8 +50,8 @@ int SMDS_MeshIDFactory::GetFreeID() else { set::iterator i = myPoolOfID.begin(); - newid = *i;//myPoolOfID.top(); - myPoolOfID.erase( i );//myPoolOfID.pop(); + newid = *i; + myPoolOfID.erase( i ); } return newid; } @@ -77,11 +77,13 @@ void SMDS_MeshIDFactory::ReleaseID(int ID, int vtkId) while ( i != myPoolOfID.begin() && myMaxID == *i ) { --myMaxID; --i; } - if ( myMaxID == *i ) + if ( myMaxID == *i ) { --myMaxID; // begin of myPoolOfID reached - else - ++i; - myPoolOfID.erase( i, myPoolOfID.end() ); + myPoolOfID.clear(); + } + else if ( myMaxID < ID-1 ) { + myPoolOfID.erase( ++i, myPoolOfID.end() ); + } } } }