From: Thomas Heller Date: Wed, 5 Apr 2006 19:51:19 +0000 (+0000) Subject: Explicitely use 'signed char', to avoid problems on platforms with unsigned char... X-Git-Tag: v2.5a2~424 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0890de3be0a8507fcabd8587f57656ed27bda45d;p=python Explicitely use 'signed char', to avoid problems on platforms with unsigned char type. --- diff --git a/Modules/_ctypes/cfield.c b/Modules/_ctypes/cfield.c index f93f958069..7bef412e45 100644 --- a/Modules/_ctypes/cfield.c +++ b/Modules/_ctypes/cfield.c @@ -499,7 +499,7 @@ b_set(void *ptr, PyObject *value, unsigned size) long val; if (get_long(value, &val) < 0) return NULL; - *(char *)ptr = (char)SET(*(char *)ptr, (char)val, size); + *(signed char *)ptr = (signed char)SET(*(signed char *)ptr, (signed char)val, size); _RET(value); } @@ -507,7 +507,7 @@ b_set(void *ptr, PyObject *value, unsigned size) static PyObject * b_get(void *ptr, unsigned size) { - char val = *(char *)ptr; + signed char val = *(signed char *)ptr; GET_BITFIELD(val, size); return PyInt_FromLong(val); }