0026524: ShapeFix_Face crash when performing fix on an invalid face.
authorgka <gka@opencascade.com>
Wed, 26 Oct 2016 16:31:49 +0000 (19:31 +0300)
committerapn <apn@opencascade.com>
Thu, 3 Nov 2016 11:15:37 +0000 (14:15 +0300)
Check that method Context() returns not null handle was added.

src/ShapeFix/ShapeFix_Face.cxx

index b5bc649..9ebadf5 100644 (file)
@@ -2459,7 +2459,12 @@ Standard_Boolean ShapeFix_Face::FixSplitFace(const TopTools_DataMapOfShapeListOf
     for(Standard_Integer i=1; i<=faces.Length(); i++ ) 
       B.Add(Comp,faces(i));
     myResult = Comp;
-    Context()->Replace ( myFace, myResult );
+
+    if(!Context().IsNull())
+    {
+      Context()->Replace ( myFace, myResult );
+    }
+
     for (TopExp_Explorer exp ( myResult, TopAbs_FACE ); exp.More(); exp.Next() ) {
       myFace = TopoDS::Face ( exp.Current() );
       BRepTools::Update(myFace);