From 9f754e0e2d788fff662e0e86bd082f5b9704b876 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Sat, 1 Jul 2000 00:38:19 +0000 Subject: [PATCH] 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! --- Modules/arraymodule.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Modules/arraymodule.c b/Modules/arraymodule.c index ba5105cc0c..7bc7e738bd 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; -- 2.50.0