Mercurial > cpython-lru_cache-weakref
diff Modules/arraymodule.c @ 13263:84879ab71b9f legacy-trunk
In b_setitem(), instead of the platform dependent CHAR_MIN and
CHAR_MAX, use hardcoded -128 and 127. This may seem strange, unless
you realize that we're talking about signed bytes here! Bytes are
always 8 bits and 2's complement. CHAR_MIN and CHAR_MAX are
properties of the char data type, which is guaranteed to hold at least
8 bits anyway.
Otherwise you'd get failing tests on platforms where unsigned char is
the default (e.g. AIX).
Thanks, Vladimir Marangozov, for finding this nit!
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Sat, 01 Jul 2000 00:38:19 +0000 |
| parents | 87ee82e5c56d |
| children | 83377fc298d8 |
line wrap: on
line diff
--- a/Modules/arraymodule.c Sat Jul 01 00:34:39 2000 +0000 +++ b/Modules/arraymodule.c Sat Jul 01 00:38:19 2000 +0000 @@ -99,12 +99,12 @@ the overflow checking */ if (!PyArg_Parse(v, "h;array item must be integer", &x)) return -1; - else if (x < CHAR_MIN) { + else if (x < -128) { PyErr_SetString(PyExc_OverflowError, "signed char is less than minimum"); return -1; } - else if (x > CHAR_MAX) { + else if (x > 127) { PyErr_SetString(PyExc_OverflowError, "signed char is greater than maximum"); return -1;
