Fixed leak caused by switching from PyList_GetItem to PySequence_GetItem.
Added missing NULL check.
Clarified code by converting an "if" to an "else if".
Will backport to 2.3.
for (i = 0; i < len; i++) {
PyObject *v =
PySequence_GetItem(initial, i);
+ if (v == NULL) {
+ Py_DECREF(a);
+ return NULL;
+ }
if (setarrayitem(a, i, v) != 0) {
+ Py_DECREF(v);
Py_DECREF(a);
return NULL;
}
+ Py_DECREF(v);
}
- }
- if (initial != NULL && PyString_Check(initial)) {
+ } else if (initial != NULL && PyString_Check(initial)) {
PyObject *t_initial = Py_BuildValue("(O)",
initial);
PyObject *v =