summaryrefslogtreecommitdiffstats
path: root/Objects/listobject.c
diff options
context:
space:
mode:
Diffstat (limited to 'Objects/listobject.c')
-rw-r--r--Objects/listobject.c25
1 files changed, 14 insertions, 11 deletions
diff --git a/Objects/listobject.c b/Objects/listobject.c
index f57f6fb..0087c63 100644
--- a/Objects/listobject.c
+++ b/Objects/listobject.c
@@ -1268,24 +1268,30 @@ PyList_Sort(PyObject *v)
return 0;
}
-static PyObject *
-listreverse(PyListObject *self, PyObject *args)
+static void
+_listreverse(PyListObject *self)
{
register PyObject **p, **q;
register PyObject *tmp;
- if (!PyArg_ParseTuple(args, ":reverse"))
- return NULL;
-
if (self->ob_size > 1) {
for (p = self->ob_item, q = self->ob_item + self->ob_size - 1;
- p < q; p++, q--) {
+ p < q;
+ p++, q--)
+ {
tmp = *p;
*p = *q;
*q = tmp;
}
}
-
+}
+
+static PyObject *
+listreverse(PyListObject *self, PyObject *args)
+{
+ if (!PyArg_ParseTuple(args, ":reverse"))
+ return NULL;
+ _listreverse(self);
Py_INCREF(Py_None);
return Py_None;
}
@@ -1297,10 +1303,7 @@ PyList_Reverse(PyObject *v)
PyErr_BadInternalCall();
return -1;
}
- v = listreverse((PyListObject *)v, (PyObject *)NULL);
- if (v == NULL)
- return -1;
- Py_DECREF(v);
+ _listreverse((PyListObject *)v);
return 0;
}