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
This commit is contained in:
wmayer
2024-04-02 00:17:59 +02:00
committed by wwmayer
parent b710444271
commit b711c586c8

View File

@@ -258,7 +258,7 @@ void TaskMultiTransformParameters::onTransformAddMirrored()
{
closeSubTask();
std::string newFeatName = TransformedView->getObject()->getDocument()->getUniqueObjectName("Mirrored");
auto pcBody = static_cast<PartDesign::Body*>(Part::BodyBase::findBodyOf(getTopTransformedObject()));
auto pcBody = dynamic_cast<PartDesign::Body*>(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<PartDesign::Body*>(Part::BodyBase::findBodyOf(getTopTransformedObject()));
auto pcBody = dynamic_cast<PartDesign::Body*>(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<PartDesign::Body*>(Part::BodyBase::findBodyOf(getObject()));
auto body = dynamic_cast<PartDesign::Body*>(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<PartDesign::Body*>(Part::BodyBase::findBodyOf(getTopTransformedObject()));
auto pcBody = dynamic_cast<PartDesign::Body*>(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<PartDesign::Body*>(Part::BodyBase::findBodyOf(getTopTransformedObject()));
auto pcBody = dynamic_cast<PartDesign::Body*>(Part::BodyBase::findBodyOf(getTopTransformedObject()));
if (!pcBody) {
return;
}