From a4d0a691b5caa2926ebdb49035f0dd2206152439 Mon Sep 17 00:00:00 2001 From: Chris Hennes Date: Fri, 25 Jul 2025 20:55:24 -0500 Subject: [PATCH] Part: Add error handling to TopoShape::isLinearEdge --- src/Mod/Part/App/TopoShapeExpansion.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Mod/Part/App/TopoShapeExpansion.cpp b/src/Mod/Part/App/TopoShapeExpansion.cpp index dcedb5dff3..efd3e4b6c1 100644 --- a/src/Mod/Part/App/TopoShapeExpansion.cpp +++ b/src/Mod/Part/App/TopoShapeExpansion.cpp @@ -5241,15 +5241,15 @@ bool TopoShape::isLinearEdge(Base::Vector3d* dir, Base::Vector3d* base) const return false; } - if (!GeomCurve::isLinear(BRepAdaptor_Curve(TopoDS::Edge(getShape())).Curve().Curve(), - dir, - base)) { + auto tdsEdge = TopoDS::Edge(getShape()); + if (tdsEdge.IsNull()) { return false; } // BRep_Tool::Curve() will transform the returned geometry, so no need to // check the shape's placement. - return true; + auto curve = BRepAdaptor_Curve(tdsEdge).Curve().Curve(); + return curve && GeomCurve::isLinear(curve); } bool TopoShape::isPlanarFace(double tol) const