From a7470332f70cc7dd1e01f70a91bf6890abf9b875 Mon Sep 17 00:00:00 2001 From: wmayer Date: Tue, 2 Apr 2024 00:17:59 +0200 Subject: [PATCH] PD: replace static_cast with dynamic_cast The use of static_cast here could cause undefined behaviour because at this point it's not guaranteed that findBodyOf() really returns a PartDesign::Body --- .../PartDesign/Gui/TaskMultiTransformParameters.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Mod/PartDesign/Gui/TaskMultiTransformParameters.cpp b/src/Mod/PartDesign/Gui/TaskMultiTransformParameters.cpp index b45003c866..e2f908408a 100644 --- a/src/Mod/PartDesign/Gui/TaskMultiTransformParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskMultiTransformParameters.cpp @@ -258,7 +258,7 @@ void TaskMultiTransformParameters::onTransformAddMirrored() { closeSubTask(); std::string newFeatName = TransformedView->getObject()->getDocument()->getUniqueObjectName("Mirrored"); - auto pcBody = static_cast(Part::BodyBase::findBodyOf(getTopTransformedObject())); + auto pcBody = dynamic_cast(Part::BodyBase::findBodyOf(getTopTransformedObject())); if (!pcBody) { return; } @@ -295,7 +295,7 @@ void TaskMultiTransformParameters::onTransformAddLinearPattern() // closeSubTask(); std::string newFeatName = TransformedView->getObject()->getDocument()->getUniqueObjectName("LinearPattern"); - auto pcBody = static_cast(Part::BodyBase::findBodyOf(getTopTransformedObject())); + auto pcBody = dynamic_cast(Part::BodyBase::findBodyOf(getTopTransformedObject())); if (!pcBody) { return; } @@ -317,7 +317,7 @@ void TaskMultiTransformParameters::onTransformAddLinearPattern() else { // set Direction value before filling up the combo box to avoid creating an empty item // inside updateUI() - auto body = static_cast(Part::BodyBase::findBodyOf(getObject())); + auto body = dynamic_cast(Part::BodyBase::findBodyOf(getObject())); if (body) { FCMD_OBJ_CMD(Feat, "Direction = (" << Gui::Command::getObjectCmd(body->getOrigin()->getX()) @@ -339,7 +339,7 @@ void TaskMultiTransformParameters::onTransformAddPolarPattern() { closeSubTask(); std::string newFeatName = TransformedView->getObject()->getDocument()->getUniqueObjectName("PolarPattern"); - auto pcBody = static_cast(Part::BodyBase::findBodyOf(getTopTransformedObject())); + auto pcBody = dynamic_cast(Part::BodyBase::findBodyOf(getTopTransformedObject())); if (!pcBody) { return; } @@ -376,7 +376,7 @@ void TaskMultiTransformParameters::onTransformAddScaled() { closeSubTask(); std::string newFeatName = TransformedView->getObject()->getDocument()->getUniqueObjectName("Scaled"); - auto pcBody = static_cast(Part::BodyBase::findBodyOf(getTopTransformedObject())); + auto pcBody = dynamic_cast(Part::BodyBase::findBodyOf(getTopTransformedObject())); if (!pcBody) { return; }