diff --git a/python/core/conversions.sip b/python/core/conversions.sip index 92f21ad9963..108eb349b59 100644 --- a/python/core/conversions.sip +++ b/python/core/conversions.sip @@ -1799,6 +1799,8 @@ template return NULL; } + Py_DECREF(valueobj); + Py_DECREF(keyobj); } return d; @@ -1997,9 +1999,7 @@ template { Py_DECREF(l); - if (tobj) - Py_DECREF(tobj); - else + if (!tobj) delete t; return NULL; @@ -2073,8 +2073,6 @@ template PyObject *keyobj = PyLong_FromLong(it.key()); PyObject *pyOobj = sipConvertFromType(oobj, sipType_QgsFeature, sipTransferObj); - PyDict_SetItem(d, keyobj, pyOobj); - if(pyOobj == NULL || keyobj == NULL || PyDict_SetItem(d, keyobj, pyOobj) < 0) { Py_DECREF(d); @@ -2083,6 +2081,10 @@ template { Py_DECREF(pyOobj); } + else + { + delete oobj; + } if (keyobj) {