Fix crash if BaseView null on Section delete

This commit is contained in:
WandererFan 2017-02-09 12:39:01 -05:00
parent 69163cb016
commit 63d5749b67

View File

@ -552,15 +552,20 @@ std::vector<TopoDS_Wire> DrawViewSection::getWireForFace(int idx) const
void DrawViewSection::unsetupObject() void DrawViewSection::unsetupObject()
{ {
getBaseDVP()->touch(); TechDraw::DrawViewPart* base = getBaseDVP();
if (base != nullptr) {
base->touch();
}
} }
TechDraw::DrawViewPart* DrawViewSection::getBaseDVP() TechDraw::DrawViewPart* DrawViewSection::getBaseDVP()
{ {
TechDraw::DrawViewPart* baseDVP = nullptr; TechDraw::DrawViewPart* baseDVP = nullptr;
App::DocumentObject* base = BaseView.getValue(); App::DocumentObject* base = BaseView.getValue();
if (base->getTypeId().isDerivedFrom(TechDraw::DrawViewPart::getClassTypeId())) { if (base != nullptr) {
baseDVP = static_cast<TechDraw::DrawViewPart*>(base); if (base->getTypeId().isDerivedFrom(TechDraw::DrawViewPart::getClassTypeId())) {
baseDVP = static_cast<TechDraw::DrawViewPart*>(base);
}
} }
return baseDVP; return baseDVP;
} }
@ -569,8 +574,10 @@ TechDraw::DrawProjGroupItem* DrawViewSection::getBaseDPGI()
{ {
TechDraw::DrawProjGroupItem* baseDPGI = nullptr; TechDraw::DrawProjGroupItem* baseDPGI = nullptr;
App::DocumentObject* base = BaseView.getValue(); App::DocumentObject* base = BaseView.getValue();
if (base->getTypeId().isDerivedFrom(TechDraw::DrawProjGroupItem::getClassTypeId())) { if (base != nullptr) {
baseDPGI = static_cast<TechDraw::DrawProjGroupItem*>(base); if (base->getTypeId().isDerivedFrom(TechDraw::DrawProjGroupItem::getClassTypeId())) {
baseDPGI = static_cast<TechDraw::DrawProjGroupItem*>(base);
}
} }
return baseDPGI; return baseDPGI;
} }