From abef50a5185cf66ec3b48b53ea65413fb73aeeeb Mon Sep 17 00:00:00 2001 From: marioalexis Date: Sun, 18 Aug 2024 17:53:24 -0300 Subject: [PATCH] Fem: Use pyViewObject base member in getPyObject methods --- src/Mod/Fem/Gui/ViewProviderFemMesh.cpp | 8 ++++---- src/Mod/Fem/Gui/ViewProviderFemMesh.h | 2 -- src/Mod/Fem/Gui/ViewProviderFemPostPipeline.cpp | 8 ++++---- src/Mod/Fem/Gui/ViewProviderFemPostPipeline.h | 3 --- 4 files changed, 8 insertions(+), 13 deletions(-) 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(); };