From 392ce697b482e55d7723dafd104e9957666688c4 Mon Sep 17 00:00:00 2001 From: WandererFan Date: Thu, 9 Feb 2017 12:39:01 -0500 Subject: [PATCH] Fix crash if BaseView null on Section delete --- src/Mod/TechDraw/App/DrawViewSection.cpp | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/Mod/TechDraw/App/DrawViewSection.cpp b/src/Mod/TechDraw/App/DrawViewSection.cpp index d22753b1f4..1639f205ac 100644 --- a/src/Mod/TechDraw/App/DrawViewSection.cpp +++ b/src/Mod/TechDraw/App/DrawViewSection.cpp @@ -552,15 +552,20 @@ std::vector DrawViewSection::getWireForFace(int idx) const void DrawViewSection::unsetupObject() { - getBaseDVP()->touch(); + TechDraw::DrawViewPart* base = getBaseDVP(); + if (base != nullptr) { + base->touch(); + } } TechDraw::DrawViewPart* DrawViewSection::getBaseDVP() { TechDraw::DrawViewPart* baseDVP = nullptr; App::DocumentObject* base = BaseView.getValue(); - if (base->getTypeId().isDerivedFrom(TechDraw::DrawViewPart::getClassTypeId())) { - baseDVP = static_cast(base); + if (base != nullptr) { + if (base->getTypeId().isDerivedFrom(TechDraw::DrawViewPart::getClassTypeId())) { + baseDVP = static_cast(base); + } } return baseDVP; } @@ -569,8 +574,10 @@ TechDraw::DrawProjGroupItem* DrawViewSection::getBaseDPGI() { TechDraw::DrawProjGroupItem* baseDPGI = nullptr; App::DocumentObject* base = BaseView.getValue(); - if (base->getTypeId().isDerivedFrom(TechDraw::DrawProjGroupItem::getClassTypeId())) { - baseDPGI = static_cast(base); + if (base != nullptr) { + if (base->getTypeId().isDerivedFrom(TechDraw::DrawProjGroupItem::getClassTypeId())) { + baseDPGI = static_cast(base); + } } return baseDPGI; }