From: Guido van Rossum Date: Sat, 1 Jul 2000 00:38:19 +0000 (+0000) Subject: In b_setitem(), instead of the platform dependent CHAR_MIN and X-Git-Tag: v2.0b1~1168 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=9f754e0e2d788fff662e0e86bd082f5b9704b876;p=thirdparty%2FPython%2Fcpython.git 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! --- diff --git a/Modules/arraymodule.c b/Modules/arraymodule.c index ba5105cc0c08..7bc7e738bd70 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;