Add special case to PySequence_List() so that list() of a list is
faster (using PyList_GetSlice()). Also added a test for a NULL
argument, as with PySequence_Tuple(). (Hmm... Better names for these
two would be PyList_FromSequence() and PyTuple_FromSequence(). Oh well.)
diff --git a/Objects/abstract.c b/Objects/abstract.c
index a94a136..cfa4cc8 100644
--- a/Objects/abstract.c
+++ b/Objects/abstract.c
@@ -1055,6 +1055,12 @@
{
PySequenceMethods *m;
+ if (v == NULL)
+ return null_error();
+
+ if (PyList_Check(v))
+ return PyList_GetSlice(v, 0, PyList_GET_SIZE(v));
+
m = v->ob_type->tp_as_sequence;
if (m && m->sq_item) {
int i;