Mercurial > cpython-lru_cache-weakref
diff Modules/arraymodule.c @ 42112:ebc87b94e6ea
"Fix" the array module test -- by ripping out the 'c' typecode.
(We already have 'b' for bytes and 'u' for unicode.)
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Mon, 18 Jun 2007 18:44:28 +0000 |
| parents | e4e8b12770e4 |
| children | 79c2656056f6 |
line wrap: on
line diff
--- a/Modules/arraymodule.c Mon Jun 18 18:26:36 2007 +0000 +++ b/Modules/arraymodule.c Mon Jun 18 18:44:28 2007 +0000 @@ -102,25 +102,6 @@ ****************************************************************************/ static PyObject * -c_getitem(arrayobject *ap, Py_ssize_t i) -{ - Py_UNICODE buf[1]; - buf[0] = ((unsigned char *)ap->ob_item)[i]; - return PyUnicode_FromUnicode(buf, 1); -} - -static int -c_setitem(arrayobject *ap, Py_ssize_t i, PyObject *v) -{ - char x; - if (!PyArg_Parse(v, "c;array item must be char", &x)) - return -1; - if (i >= 0) - ((char *)ap->ob_item)[i] = x; - return 0; -} - -static PyObject * b_getitem(arrayobject *ap, Py_ssize_t i) { long x = ((char *)ap->ob_item)[i]; @@ -391,7 +372,6 @@ /* Description of types */ static struct arraydescr descriptors[] = { - {'c', sizeof(char), c_getitem, c_setitem}, {'b', sizeof(char), b_getitem, b_setitem}, {'B', sizeof(char), BB_getitem, BB_setitem}, {'u', sizeof(Py_UNICODE), u_getitem, u_setitem}, @@ -1403,8 +1383,8 @@ static PyObject * array_tostring(arrayobject *self, PyObject *unused) { - return PyString_FromStringAndSize(self->ob_item, - self->ob_size * self->ob_descr->itemsize); + return PyBytes_FromStringAndSize(self->ob_item, + self->ob_size * self->ob_descr->itemsize); } PyDoc_STRVAR(tostring_doc, @@ -1562,9 +1542,7 @@ if (len == 0) { return PyUnicode_FromFormat("array('%c')", typecode); } - if (typecode == 'c') - v = array_tostring(a, NULL); - else if (typecode == 'u') + if (typecode == 'u') v = array_tounicode(a, NULL); else v = array_tolist(a, NULL); @@ -1899,7 +1877,7 @@ } } PyErr_SetString(PyExc_ValueError, - "bad typecode (must be c, b, B, u, h, H, i, I, l, L, f or d)"); + "bad typecode (must be b, B, u, h, H, i, I, l, L, f or d)"); return NULL; } @@ -1913,7 +1891,6 @@ is a single character. The following type codes are defined:\n\ \n\ Type code C Type Minimum size in bytes \n\ - 'c' character 1 \n\ 'b' signed integer 1 \n\ 'B' unsigned integer 1 \n\ 'u' Unicode character 2 \n\
