mirror of
https://git.salome-platform.org/gitpub/modules/geom.git
synced 2025-02-14 02:03:08 +05:00
Fix problem in DifferenceList() function: when group becomes empty, an invalid compound is created by error.
This commit is contained in:
parent
3ef88bf27f
commit
fa7612374a
@ -485,14 +485,20 @@ void GEOMImpl_IGroupOperations::DifferenceList (Handle(GEOM_Object) theGroup,
|
|||||||
|
|
||||||
if (mapIDsToRemove.Extent() > 0) {
|
if (mapIDsToRemove.Extent() > 0) {
|
||||||
Standard_Integer k = 1, aRemLength = mapIDsToRemove.Extent();
|
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 ) {
|
||||||
for (j = 1; j <= aLength; j++) {
|
aNewSeq = new TColStd_HArray1OfInteger(1, aLength - aRemLength);
|
||||||
if (!mapIDsToRemove.Contains(aSeq->Value(j))) {
|
for (j = 1; j <= aLength; j++) {
|
||||||
aNewSeq->SetValue(k, aSeq->Value(j));
|
if (!mapIDsToRemove.Contains(aSeq->Value(j))) {
|
||||||
k++;
|
aNewSeq->SetValue(k, aSeq->Value(j));
|
||||||
|
k++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
aNewSeq = new TColStd_HArray1OfInteger(1,1);
|
||||||
|
aNewSeq->SetValue(1, -1);
|
||||||
|
}
|
||||||
|
|
||||||
aSSI.SetIndices(aNewSeq);
|
aSSI.SetIndices(aNewSeq);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user