Mercurial > cpython-lru_cache-weakref
diff Modules/arraymodule.c @ 28760:22d177682ae1 legacy-trunk
SF 686323: Minor array module enhancements
Allows use of tuples for the initializer.
| author | Raymond Hettinger <python@rcn.com> |
|---|---|
| date | Thu, 24 Apr 2003 10:41:55 +0000 |
| parents | bd678e65f784 |
| children | 2bb5ceef9ac3 |
line wrap: on
line diff
--- a/Modules/arraymodule.c Thu Apr 24 05:45:23 2003 +0000 +++ b/Modules/arraymodule.c Thu Apr 24 10:41:55 2003 +0000 @@ -1732,7 +1732,7 @@ return NULL; if (!(initial == NULL || PyList_Check(initial) - || PyString_Check(initial) + || PyString_Check(initial) || PyTuple_Check(initial) || (c == 'u' && PyUnicode_Check(initial)))) { PyErr_SetString(PyExc_TypeError, "array initializer must be list or string"); @@ -1742,10 +1742,12 @@ if (descr->typecode == c) { PyObject *a; int len; - if (initial == NULL || !PyList_Check(initial)) + + if (initial == NULL || !(PyList_Check(initial) + || PyTuple_Check(initial))) len = 0; else - len = PyList_Size(initial); + len = PySequence_Size(initial); a = newarrayobject(type, len, descr); if (a == NULL) @@ -1755,7 +1757,7 @@ int i; for (i = 0; i < len; i++) { PyObject *v = - PyList_GetItem(initial, i); + PySequence_GetItem(initial, i); if (setarrayitem(a, i, v) != 0) { Py_DECREF(a); return NULL;
