diff --git a/src/Mod/Part/App/GeometryPyImp.cpp b/src/Mod/Part/App/GeometryPyImp.cpp index 1598408c09..ded486b763 100644 --- a/src/Mod/Part/App/GeometryPyImp.cpp +++ b/src/Mod/Part/App/GeometryPyImp.cpp @@ -412,7 +412,7 @@ PyObject* GeometryPy::getExtensions(PyObject *args) try { const std::vector> ext = this->getGeometryPtr()->getExtensions(); - PyObject* list = PyList_New(0); + Py::List list; for (std::size_t i=0; icopyPyObject(); - PyList_Append( list, cpy); - Py_DECREF(cpy); + list.append(Py::asObject(p->copyPyObject())); } catch(Base::NotImplementedError) { // silently ignoring extensions not having a Python object @@ -433,7 +431,7 @@ PyObject* GeometryPy::getExtensions(PyObject *args) } } - return list; + return Py::new_reference_to(list); } catch(const Base::ValueError& e) { PyErr_SetString(PartExceptionOCCError, e.what());