]> OCCT Git - occt-copy.git/commitdiff
0028616: TNaming - DELETE evolution is not considered by TNaming_NewShapeIterator
authorapl <anton.poletaev@opencascade.com>
Mon, 3 Apr 2017 09:23:33 +0000 (12:23 +0300)
committerapl <anton.poletaev@opencascade.com>
Thu, 20 Apr 2017 13:05:32 +0000 (16:05 +0300)
src/TNaming/TNaming_NamedShape.cxx

index d09714f0e9cc581e16b39a2ae1be3dca771f9c3b..2fa61dbcb35b4677309bb05180d2b540b38d729b 100644 (file)
@@ -992,7 +992,7 @@ static void SelectSameShape (TNaming_Node*&          myNode,
     if (Valid)
     {
       if (Old) {
-        if( pdn->myOld == RS && pdn->myNew != 0L && pdn->myNew != RS) {
+        if( pdn->myOld == RS && (pdn->myAtt->Evolution() == TNaming_DELETE || pdn->myNew != 0L) && pdn->myNew != RS) {
           break;
         }  
       }
@@ -1175,9 +1175,9 @@ Handle(TNaming_NamedShape) TNaming_NewShapeIterator::NamedShape() const
 
 const TopoDS_Shape& TNaming_NewShapeIterator::Shape() const
 {
-  Standard_NoSuchObject_Raise_if(myNode == 0L,
-                                "TNaming_NewShapeIterator::Shape"); 
-  return myNode->myNew->Shape();
+  Standard_NoSuchObject_Raise_if(myNode == 0L, "TNaming_NewShapeIterator::Shape");
+  static const TopoDS_Shape aNullShape;
+  return (myNode->myNew != NULL) ? myNode->myNew->Shape() : aNullShape;
 }
 
 //=======================================================================