0025780: checkshape raises an exception Standard_OutOfMemory.
authorink <ink@opencascade.com>
Thu, 5 Feb 2015 12:35:00 +0000 (15:35 +0300)
committerbugmaster <bugmaster@opencascade.com>
Thu, 5 Feb 2015 12:41:22 +0000 (15:41 +0300)
Improved method BRepCheck_Wire::Propagate

Added test cases bugs/modalg_5/bug25780

src/BRepCheck/BRepCheck_Wire.cxx
tests/bugs/modalg_5/bug25780 [new file with mode: 0644]

index c0f192b..e59fae7 100644 (file)
@@ -1551,7 +1551,8 @@ static void Propagate(const TopTools_IndexedDataMapOfShapeListOfShape& mapVE,
     for (; itrc.More(); itrc.Next())
     {
       const TopoDS_Shape& Edge = itrc.Value();
-      mapE.Add(Edge);
+      if (!mapE.Contains(Edge)) 
+        mapE.Add(Edge);
 
       TopExp_Explorer ex(Edge, TopAbs_VERTEX);
       for (; ex.More(); ex.Next())
@@ -1567,7 +1568,10 @@ static void Propagate(const TopTools_IndexedDataMapOfShapeListOfShape& mapVE,
           {
             const TopoDS_Shape& E = itl.Value();
             if (!Edge.IsSame(E) && !mapE.Contains(E))
+            {
+              mapE.Add(E);
               nextEdges.Append(E);
+            }
           }
         }
       }
diff --git a/tests/bugs/modalg_5/bug25780 b/tests/bugs/modalg_5/bug25780
new file mode 100644 (file)
index 0000000..fa28c95
--- /dev/null
@@ -0,0 +1,12 @@
+puts "=========="
+puts "OCC25780"
+puts "=========="
+puts ""
+######################################################
+# checkshape raises an exception Standard_OutOfMemory.
+######################################################
+
+restore [locate_data_file bug25780_checkshape] result
+checkshape result b
+
+set 2dviewer 1