diff options
author | Guido van Rossum <guido@python.org> | 2000-07-01 00:38:19 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 2000-07-01 00:38:19 (GMT) |
commit | 9f754e0e2d788fff662e0e86bd082f5b9704b876 (patch) | |
tree | 610f306af5db877acdafa13a35e6043aa87305ec /Modules | |
parent | 973e4dcaff53e1c2d9bd12b0b88bfc8366d5e2a2 (diff) | |
download | cpython-9f754e0e2d788fff662e0e86bd082f5b9704b876.zip cpython-9f754e0e2d788fff662e0e86bd082f5b9704b876.tar.gz cpython-9f754e0e2d788fff662e0e86bd082f5b9704b876.tar.bz2 |
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!
Diffstat (limited to 'Modules')
-rw-r--r-- | Modules/arraymodule.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/Modules/arraymodule.c b/Modules/arraymodule.c index ba5105c..7bc7e73 100644 --- a/Modules/arraymodule.c +++ b/Modules/arraymodule.c @@ -99,12 +99,12 @@ b_setitem(ap, i, v) 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; |