diff --git a/src/Mod/Fem/Gui/ViewProviderFemMesh.cpp b/src/Mod/Fem/Gui/ViewProviderFemMesh.cpp index 243d7633a6..c7c53732bb 100644 --- a/src/Mod/Fem/Gui/ViewProviderFemMesh.cpp +++ b/src/Mod/Fem/Gui/ViewProviderFemMesh.cpp @@ -596,11 +596,11 @@ void ViewProviderFemMesh::resetHighlightNodes() PyObject* ViewProviderFemMesh::getPyObject() { - if (PythonObject.is(Py::_None())) { - // ref counter is set to 1 - PythonObject = Py::Object(new ViewProviderFemMeshPy(this), true); + if (!pyViewObject) { + pyViewObject = new ViewProviderFemMeshPy(this); } - return Py::new_reference_to(PythonObject); + pyViewObject->IncRef(); + return pyViewObject; } void ViewProviderFemMesh::setDisplacementByNodeId(const std::map& NodeDispMap) diff --git a/src/Mod/Fem/Gui/ViewProviderFemMesh.h b/src/Mod/Fem/Gui/ViewProviderFemMesh.h index 32b60caff9..0a3d738b4a 100644 --- a/src/Mod/Fem/Gui/ViewProviderFemMesh.h +++ b/src/Mod/Fem/Gui/ViewProviderFemMesh.h @@ -145,8 +145,6 @@ private: static App::PropertyFloatConstraint::Constraints floatRange; static const char* colorModeEnum[]; - Py::Object PythonObject; - protected: /// get called by the container whenever a property has been changed void onChanged(const App::Property* prop) override; diff --git a/src/Mod/Fem/Gui/ViewProviderFemPostPipeline.cpp b/src/Mod/Fem/Gui/ViewProviderFemPostPipeline.cpp index 7641b201df..ca634531d1 100644 --- a/src/Mod/Fem/Gui/ViewProviderFemPostPipeline.cpp +++ b/src/Mod/Fem/Gui/ViewProviderFemPostPipeline.cpp @@ -240,9 +240,9 @@ void ViewProviderFemPostPipeline::scaleField(vtkDataSet* dset, PyObject* ViewProviderFemPostPipeline::getPyObject() { - if (PythonObject.is(Py::_None())) { - // ref counter is set to 1 - PythonObject = Py::Object(new ViewProviderFemPostPipelinePy(this), true); + if (!pyViewObject) { + pyViewObject = new ViewProviderFemPostPipelinePy(this); } - return Py::new_reference_to(PythonObject); + pyViewObject->IncRef(); + return pyViewObject; } diff --git a/src/Mod/Fem/Gui/ViewProviderFemPostPipeline.h b/src/Mod/Fem/Gui/ViewProviderFemPostPipeline.h index 69236ad349..511c2d8228 100644 --- a/src/Mod/Fem/Gui/ViewProviderFemPostPipeline.h +++ b/src/Mod/Fem/Gui/ViewProviderFemPostPipeline.h @@ -52,9 +52,6 @@ public: void scaleField(vtkDataSet* dset, vtkDataArray* pdata, double FieldFactor); PyObject* getPyObject() override; -private: - Py::Object PythonObject; - protected: void updateFunctionSize(); };