Core: Fix memory leaks with PySequence_GetItem

This commit is contained in:
wmayer
2024-05-08 23:40:27 +02:00
parent 82101ac890
commit 03a371d6e3
6 changed files with 63 additions and 66 deletions

View File

@@ -100,14 +100,8 @@ PyObject* DocumentObjectPy::addProperty(PyObject *args, PyObject *kwd)
// enum support
auto* propEnum = dynamic_cast<App::PropertyEnumeration*>(prop);
if (propEnum) {
if (enumVals && PySequence_Check(enumVals)) {
std::vector<std::string> enumValsAsVector;
for (Py_ssize_t i = 0; i < PySequence_Length(enumVals); ++i) {
enumValsAsVector.emplace_back(PyUnicode_AsUTF8(PySequence_GetItem(enumVals,i)));
}
propEnum->setEnums(enumValsAsVector);
}
if (propEnum && enumVals) {
propEnum->setPyObject(enumVals);
}
return Py::new_reference_to(this);