Fix problem in DifferenceList() function: when group becomes empty, an invalid compound is created by error.

This commit is contained in:
vsr 2011-04-22 14:44:29 +00:00
parent 3ef88bf27f
commit fa7612374a

View File

@ -485,14 +485,20 @@ void GEOMImpl_IGroupOperations::DifferenceList (Handle(GEOM_Object) theGroup,
if (mapIDsToRemove.Extent() > 0) {
Standard_Integer k = 1, aRemLength = mapIDsToRemove.Extent();
Handle(TColStd_HArray1OfInteger) aNewSeq = new TColStd_HArray1OfInteger(1, aLength - aRemLength);
Handle(TColStd_HArray1OfInteger) aNewSeq;
if ( aLength - aRemLength > 0 ) {
aNewSeq = new TColStd_HArray1OfInteger(1, aLength - aRemLength);
for (j = 1; j <= aLength; j++) {
if (!mapIDsToRemove.Contains(aSeq->Value(j))) {
aNewSeq->SetValue(k, aSeq->Value(j));
k++;
}
}
}
else {
aNewSeq = new TColStd_HArray1OfInteger(1,1);
aNewSeq->SetValue(1, -1);
}
aSSI.SetIndices(aNewSeq);