From 7af5dac2bb0d5938866ce6a92f040bee20fbb8a0 Mon Sep 17 00:00:00 2001 From: wmayer Date: Wed, 7 Mar 2018 11:41:23 +0100 Subject: [PATCH] fix crash when closing drawing view --- src/Gui/ViewProviderGroupExtension.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/Gui/ViewProviderGroupExtension.cpp b/src/Gui/ViewProviderGroupExtension.cpp index f78084830d..8ac8961385 100644 --- a/src/Gui/ViewProviderGroupExtension.cpp +++ b/src/Gui/ViewProviderGroupExtension.cpp @@ -144,10 +144,14 @@ void ViewProviderGroupExtension::extensionHide(void) { const std::vector & links = group->Group.getValues(); Gui::Document* doc = Application::Instance->getDocument(getExtendedViewProvider()->getObject()->getDocument()); - for (std::vector::const_iterator it = links.begin(); it != links.end(); ++it) { - ViewProvider* view = doc->getViewProvider(*it); - if (view) - view->hide(); + // doc pointer can be null in case the document is about to be destroyed + // See https://forum.freecadweb.org/viewtopic.php?f=22&t=26797&p=218804#p218521 + if (doc) { + for (std::vector::const_iterator it = links.begin(); it != links.end(); ++it) { + ViewProvider* view = doc->getViewProvider(*it); + if (view) + view->hide(); + } } }