From 3f2f8ce039dcc798806fa59bc32a7c5abaef9613 Mon Sep 17 00:00:00 2001 From: "Zheng, Lei" Date: Thu, 4 Jun 2020 11:59:13 +0800 Subject: [PATCH] Gui: fix crash on selecting removing object The crash happens if some code calls Gui::Selection().addSelect() of a removing object in response to App::Document::signalDeletedObject. --- src/Gui/Selection.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/Gui/Selection.cpp b/src/Gui/Selection.cpp index 4a3433fd65..f75d3402ec 100644 --- a/src/Gui/Selection.cpp +++ b/src/Gui/Selection.cpp @@ -1623,6 +1623,8 @@ int SelectionSingleton::checkSelection(const char *pDocName, const char *pObject FC_ERR("Object not found"); return -1; } + if(sel.pObject->testStatus(App::ObjectStatus::Remove)) + return -1; if(pSubName) sel.SubName = pSubName; if(!resolve) @@ -1638,6 +1640,8 @@ int SelectionSingleton::checkSelection(const char *pDocName, const char *pObject FC_ERR("Sub-object " << sel.DocName << '#' << sel.FeatName << '.' << sel.SubName << " not found"); return -1; } + if(sel.pResolvedObject->testStatus(App::ObjectStatus::Remove)) + return -1; std::string subname; std::string prefix; if(pSubName && element) {