Salome HOME
[bos #37951][EDF 25230] SIGSEGV with MakeVertexInsideFace. Added check for an uniniti...
[modules/geom.git] / src / GEOMAlgo / GEOMAlgo_AlgoTools.cxx
index baa1ce94cb35304c5769c2a3829aae3c583a4835..511de81ac96ee2a30a0651075a171dd8a99c5035 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2022  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2023  CEA, EDF, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -1292,6 +1292,13 @@ gp_Pnt GetMidPnt2d(const TopoDS_Face&     theFace,
       const TopoDS_Edge& anEdge = aWexp.Current();
       if (!aUsedEmap.Add(anEdge)) continue;
       BRepAdaptor_Curve2d aBAcurve2d (anEdge, theFace);
+      // Initialization of curve could fail in constructor,
+      // so we need to check if we actually have a curve here.
+      if (!aBAcurve2d.Curve())
+      {
+        continue;
+      }
+
       Standard_Real aDelta = (aBAcurve2d.LastParameter() - aBAcurve2d.FirstParameter())/aNbSamples;
       for (Standard_Integer ii = 0; ii < aNbSamples; ii++)
       {