From: jfa Date: Thu, 3 Aug 2006 11:17:55 +0000 (+0000) Subject: PAL13117: Bug in RemoveObject method. X-Git-Tag: For_OCT_611~7 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=65c6df32492254a41fcb95ed0d911de3e02358b8;p=modules%2Fgeom.git PAL13117: Bug in RemoveObject method. --- diff --git a/src/GEOMImpl/GEOMImpl_IGroupOperations.cxx b/src/GEOMImpl/GEOMImpl_IGroupOperations.cxx index 3bc83464c..7535fd407 100644 --- a/src/GEOMImpl/GEOMImpl_IGroupOperations.cxx +++ b/src/GEOMImpl/GEOMImpl_IGroupOperations.cxx @@ -196,20 +196,18 @@ void GEOMImpl_IGroupOperations::RemoveObject (Handle(GEOM_Object) theGroup, int else { aNewSeq = new TColStd_HArray1OfInteger(1, aLength-1); Standard_Boolean isFound = Standard_False; - for(Standard_Integer i = 1, k=1; i<=aLength; i++) { - if(i == aLength && !isFound) { - SetErrorCode(NOT_EXISTS); - return; - } - if(aSeq->Value(i) == theSubShapeID) { + for (Standard_Integer i = 1, k = 1; i <= aLength; i++) { + if (aSeq->Value(i) == theSubShapeID) { isFound = Standard_True; - continue; - } - aNewSeq->SetValue(k, aSeq->Value(i)); - k++; + } else { + if (k < aLength) { // this check is to avoid sequence overflow + aNewSeq->SetValue(k, aSeq->Value(i)); + k++; + } + } } - if(!isFound) { + if (!isFound) { SetErrorCode(NOT_EXISTS); return; }