PyList_Reverse(): This was leaking a reference to Py_None on every call.
I believe I introduced this bug when I refactored the reversal code so
that the mergesort could use it too. It's not a problem on the 2.2 branch.
diff --git a/Objects/listobject.c b/Objects/listobject.c
index e2b9b2b..7fad905 100644
--- a/Objects/listobject.c
+++ b/Objects/listobject.c
@@ -1718,11 +1718,14 @@
int
PyList_Reverse(PyObject *v)
{
+ PyListObject *self = (PyListObject *)v;
+
if (v == NULL || !PyList_Check(v)) {
PyErr_BadInternalCall();
return -1;
}
- listreverse((PyListObject *)v);
+ if (self->ob_size > 1)
+ reverse_slice(self->ob_item, self->ob_item + self->ob_size);
return 0;
}