From bb73b571f7b4223e648f3a556025119e2cb0c7d0 Mon Sep 17 00:00:00 2001 From: wmayer Date: Wed, 17 Feb 2021 12:00:38 +0100 Subject: [PATCH] App/Gui: fix possible crash when destroying Python feature or its view provider --- src/App/FeaturePython.cpp | 5 +++++ src/Gui/ViewProviderPythonFeature.cpp | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/src/App/FeaturePython.cpp b/src/App/FeaturePython.cpp index 5739c9fbaa..65de2fec78 100644 --- a/src/App/FeaturePython.cpp +++ b/src/App/FeaturePython.cpp @@ -45,6 +45,11 @@ FeaturePythonImp::FeaturePythonImp(App::DocumentObject* o) FeaturePythonImp::~FeaturePythonImp() { + Base::PyGILStateLocker lock; +#undef FC_PY_ELEMENT +#define FC_PY_ELEMENT(_name) py_##_name = Py::None(); + + FC_PY_FEATURE_PYTHON } void FeaturePythonImp::init(PyObject *pyobj) { diff --git a/src/Gui/ViewProviderPythonFeature.cpp b/src/Gui/ViewProviderPythonFeature.cpp index 5a46a48b0d..56c32885de 100644 --- a/src/Gui/ViewProviderPythonFeature.cpp +++ b/src/Gui/ViewProviderPythonFeature.cpp @@ -300,6 +300,11 @@ ViewProviderPythonFeatureImp::ViewProviderPythonFeatureImp( ViewProviderPythonFeatureImp::~ViewProviderPythonFeatureImp() { + Base::PyGILStateLocker lock; +#undef FC_PY_ELEMENT +#define FC_PY_ELEMENT(_name) py_##_name = Py::None(); + + FC_PY_VIEW_OBJECT } void ViewProviderPythonFeatureImp::init(PyObject *pyobj) {