Mercurial > cpython-lru_cache-weakref
comparison Modules/arraymodule.c @ 42145:8eeaa9923901
Creating an array with a bytes object as initializer
should treat the bytes as it treats a string.
Not doing this broke re.compile() of big charsets.
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Tue, 03 Jul 2007 16:22:09 +0000 |
| parents | 1f7b66a9ffb0 |
| children | d0719406b2c6 |
comparison
equal
deleted
inserted
replaced
| 42144:ae870228d5f3 | 42145:8eeaa9923901 |
|---|---|
| 1787 | 1787 |
| 1788 if (!PyArg_ParseTuple(args, "C|O:array", &c, &initial)) | 1788 if (!PyArg_ParseTuple(args, "C|O:array", &c, &initial)) |
| 1789 return NULL; | 1789 return NULL; |
| 1790 | 1790 |
| 1791 if (!(initial == NULL || PyList_Check(initial) | 1791 if (!(initial == NULL || PyList_Check(initial) |
| 1792 || PyBytes_Check(initial) | |
| 1792 || PyString_Check(initial) || PyTuple_Check(initial) | 1793 || PyString_Check(initial) || PyTuple_Check(initial) |
| 1793 || (c == 'u' && PyUnicode_Check(initial)))) { | 1794 || (c == 'u' && PyUnicode_Check(initial)))) { |
| 1794 it = PyObject_GetIter(initial); | 1795 it = PyObject_GetIter(initial); |
| 1795 if (it == NULL) | 1796 if (it == NULL) |
| 1796 return NULL; | 1797 return NULL; |
| 1830 Py_DECREF(a); | 1831 Py_DECREF(a); |
| 1831 return NULL; | 1832 return NULL; |
| 1832 } | 1833 } |
| 1833 Py_DECREF(v); | 1834 Py_DECREF(v); |
| 1834 } | 1835 } |
| 1835 } else if (initial != NULL && PyString_Check(initial)) { | 1836 } else if (initial != NULL && |
| 1837 (PyString_Check(initial) || PyBytes_Check(initial))) { | |
| 1836 PyObject *t_initial, *v; | 1838 PyObject *t_initial, *v; |
| 1837 t_initial = PyTuple_Pack(1, initial); | 1839 t_initial = PyTuple_Pack(1, initial); |
| 1838 if (t_initial == NULL) { | 1840 if (t_initial == NULL) { |
| 1839 Py_DECREF(a); | 1841 Py_DECREF(a); |
| 1840 return NULL; | 1842 return NULL; |
