From aed5727ac392baf827c083c784cf25cff88a06f3 Mon Sep 17 00:00:00 2001 From: Florian Foinant-Willig Date: Mon, 18 Mar 2024 20:53:24 +0100 Subject: [PATCH] [PD] Fix crash related to SuppressibleExtension --- src/Gui/ViewProviderSuppressibleExtension.cpp | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/Gui/ViewProviderSuppressibleExtension.cpp b/src/Gui/ViewProviderSuppressibleExtension.cpp index c2191e96f1..17d48c4df0 100644 --- a/src/Gui/ViewProviderSuppressibleExtension.cpp +++ b/src/Gui/ViewProviderSuppressibleExtension.cpp @@ -22,6 +22,7 @@ #include "PreCompiled.h" +#include #include #include "ActionFunction.h" @@ -51,13 +52,17 @@ ViewProviderSuppressibleExtension::~ViewProviderSuppressibleExtension() = defaul void ViewProviderSuppressibleExtension::extensionUpdateData(const App::Property* prop) { auto vp = getExtendedViewProvider(); - auto obj = vp->getObject()->getExtensionByType(); - if (obj && prop == &obj->Suppressed) { + auto owner = vp->getObject(); + if(!owner->isValid()) + return; + + auto ext = owner->getExtensionByType(); + + if (ext && prop == &ext->Suppressed) { //update the tree item - bool suppressed = obj->Suppressed.getValue(); - this->setSuppressedIcon(suppressed); - auto activeDoc = Gui::Application::Instance->activeDocument(); - activeDoc->signalHighlightObject(*vp, Gui::HighlightMode::StrikeOut, suppressed, 0, 0); + bool suppressed = ext->Suppressed.getValue(); + setSuppressedIcon(suppressed); + vp->getDocument()->signalHighlightObject(*vp, Gui::HighlightMode::StrikeOut, suppressed, owner, 0); } }