From 70d094994aaddc3e0eb22eeaad667b6ceeeff0e0 Mon Sep 17 00:00:00 2001 From: wmayer Date: Wed, 3 Jan 2018 17:59:45 +0100 Subject: [PATCH] fix crash in ViewProviderBody::setVisualBodyMode due to missing view provider --- src/Mod/PartDesign/Gui/ViewProviderBody.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/Mod/PartDesign/Gui/ViewProviderBody.cpp b/src/Mod/PartDesign/Gui/ViewProviderBody.cpp index 893ccc36cd..b5e560fe26 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderBody.cpp +++ b/src/Mod/PartDesign/Gui/ViewProviderBody.cpp @@ -379,16 +379,16 @@ void ViewProviderBody::unifyVisualProperty(const App::Property* prop) { prop == &Selectable || prop == &DisplayModeBody) return; - + Gui::Document *gdoc = Gui::Application::Instance->getDocument ( pcObject->getDocument() ) ; - + PartDesign::Body *body = static_cast ( getObject() ); auto features = body->Group.getValues(); for(auto feature : features) { if(!feature->isDerivedFrom(PartDesign::Feature::getClassTypeId())) continue; - + //copy over the properties data auto p = gdoc->getViewProvider(feature)->getPropertyByName(prop->getName()); p->Paste(*prop); @@ -398,15 +398,16 @@ void ViewProviderBody::unifyVisualProperty(const App::Property* prop) { void ViewProviderBody::setVisualBodyMode(bool bodymode) { Gui::Document *gdoc = Gui::Application::Instance->getDocument ( pcObject->getDocument() ) ; - + PartDesign::Body *body = static_cast ( getObject() ); auto features = body->Group.getValues(); for(auto feature : features) { if(!feature->isDerivedFrom(PartDesign::Feature::getClassTypeId())) continue; - - static_cast(gdoc->getViewProvider(feature))->setBodyMode(bodymode); + + auto* vp = static_cast(gdoc->getViewProvider(feature)); + if (vp) vp->setBodyMode(bodymode); } }