X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESHDS%2FSMESHDS_TSubMeshHolder.hxx;h=d637e7e16ba0a5a7c96427066d0c7e2935fe507b;hb=d8bc11015235c68631ac85d7e8cf278edc9809d1;hp=b6fa226da3006dbaf377c5b004ff655652d299d3;hpb=a3ee66b0371b361bf97d6261c61a35995b4595bb;p=modules%2Fsmesh.git diff --git a/src/SMESHDS/SMESHDS_TSubMeshHolder.hxx b/src/SMESHDS/SMESHDS_TSubMeshHolder.hxx index b6fa226da..d637e7e16 100644 --- a/src/SMESHDS/SMESHDS_TSubMeshHolder.hxx +++ b/src/SMESHDS/SMESHDS_TSubMeshHolder.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -54,7 +54,7 @@ public: } else { - if ( myVec.size() <= id ) + if ( (int)myVec.size() <= id ) myVec.resize( id+1, (SUBMESH*) NULL ); myVec[ id ] = sm; } @@ -68,18 +68,26 @@ public: } else { - return (SUBMESH*) ( id >= myVec.size() ? NULL : myVec[ id ]); + return (SUBMESH*) ( id >= (int)myVec.size() ? NULL : myVec[ id ]); } } void DeleteAll() { for ( size_t i = 0; i < myVec.size(); ++i ) - delete myVec[i]; + if ( SUBMESH* sm = myVec[i] ) + { + myVec[i] = 0; // avoid access via Get(i) + delete sm; + } myVec.clear(); typename std::map< int, SUBMESH* >::iterator i2sm = myMap.begin(); for ( ; i2sm != myMap.end(); ++i2sm ) - delete i2sm->second; + if ( SUBMESH* sm = i2sm->second ) + { + i2sm->second = 0; // avoid access via Get(i) + delete sm; + } myMap.clear(); } int GetMinID() const