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;