]> granicus.if.org Git - python/commitdiff
Explicitely use 'signed char', to avoid problems on platforms with unsigned char...
authorThomas Heller <theller@ctypes.org>
Wed, 5 Apr 2006 19:51:19 +0000 (19:51 +0000)
committerThomas Heller <theller@ctypes.org>
Wed, 5 Apr 2006 19:51:19 +0000 (19:51 +0000)
Modules/_ctypes/cfield.c

index f93f9580698b6ba90f4183fab91bc80e2e126476..7bef412e459061a8a694fd4a890a0bf0e33d8a4b 100644 (file)
@@ -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);
 }