From ab91372e280987682b14319b5708ddf2ddef79db Mon Sep 17 00:00:00 2001 From: Chris Hennes Date: Fri, 25 Jul 2025 09:21:43 -0500 Subject: [PATCH] Sketcher: Resolve "Type confusion" CodeQL critical warning --- src/Mod/Sketcher/App/SketchObject.cpp | 36 +++++++++++++-------------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/src/Mod/Sketcher/App/SketchObject.cpp b/src/Mod/Sketcher/App/SketchObject.cpp index 92c7a9b703..ae2a0e4ca0 100644 --- a/src/Mod/Sketcher/App/SketchObject.cpp +++ b/src/Mod/Sketcher/App/SketchObject.cpp @@ -1571,32 +1571,32 @@ Base::Vector3d SketchObject::getPointForGeometry<>(const Part::GeomBSplineCurve Base::Vector3d SketchObject::getPoint(const Part::Geometry *geo, PointPos PosId) { - if (geo->is()) { - return getPointForGeometry(static_cast(geo), PosId); + if (auto asPoint = freecad_cast(geo)) { + return getPointForGeometry(asPoint, PosId); } - else if (geo->is()) { - return getPointForGeometry(static_cast(geo), PosId); + else if (auto asLineSegment = freecad_cast(geo)) { + return getPointForGeometry(asLineSegment, PosId); } - else if (geo->is()) { - return getPointForGeometry(static_cast(geo), PosId); + else if (auto asCircle = freecad_cast(geo)) { + return getPointForGeometry(asCircle, PosId); } - else if (geo->is()) { - return getPointForGeometry(static_cast(geo), PosId); + else if (auto asEllipse = freecad_cast(geo)) { + return getPointForGeometry(asEllipse, PosId); } - else if (geo->is()) { - return getPointForGeometry(static_cast(geo), PosId); + else if (auto asArcOfCircle = freecad_cast(geo)) { + return getPointForGeometry(asArcOfCircle, PosId); } - else if (geo->is()) { - return getPointForGeometry(static_cast(geo), PosId); + else if (auto asArcOfEllipse = freecad_cast(geo)) { + return getPointForGeometry(asArcOfEllipse, PosId); } - else if (geo->is()) { - return getPointForGeometry(static_cast(geo), PosId); + else if (auto asArcOfHyperbola = freecad_cast(geo)) { + return getPointForGeometry(asArcOfHyperbola, PosId); } - else if (geo->is()) { - return getPointForGeometry(static_cast(geo), PosId); + else if (auto asArcOfParabola = freecad_cast(geo)) { + return getPointForGeometry(asArcOfParabola, PosId); } - else if (geo->is()) { - return getPointForGeometry(static_cast(geo), PosId); + else if (auto asBSplineCurve = freecad_cast(geo)) { + return getPointForGeometry(asBSplineCurve, PosId); } return Base::Vector3d(); }