]> granicus.if.org Git - python/commitdiff
ctypes: the type of b_size is Py_ssize_t.
authorSerhiy Storchaka <storchaka@gmail.com>
Fri, 17 Jun 2016 08:11:07 +0000 (11:11 +0300)
committerSerhiy Storchaka <storchaka@gmail.com>
Fri, 17 Jun 2016 08:11:07 +0000 (11:11 +0300)
Modules/_ctypes/_ctypes.c

index da2aa7d376a07c0ad0d87fdcd97d2286701c674b..b7e47fa350fae9b462c047248d0949e6f732c74a 100644 (file)
@@ -1174,7 +1174,7 @@ CharArray_get_raw(CDataObject *self)
 static PyObject *
 CharArray_get_value(CDataObject *self)
 {
-    int i;
+    Py_ssize_t i;
     char *ptr = self->b_ptr;
     for (i = 0; i < self->b_size; ++i)
         if (*ptr++ == '\0')
@@ -1236,9 +1236,9 @@ static PyGetSetDef CharArray_getsets[] = {
 static PyObject *
 WCharArray_get_value(CDataObject *self)
 {
-    unsigned int i;
+    Py_ssize_t i;
     wchar_t *ptr = (wchar_t *)self->b_ptr;
-    for (i = 0; i < self->b_size/sizeof(wchar_t); ++i)
+    for (i = 0; i < self->b_size/(Py_ssize_t)sizeof(wchar_t); ++i)
         if (*ptr++ == (wchar_t)0)
             break;
     return PyUnicode_FromWideChar((wchar_t *)self->b_ptr, i);
@@ -1267,7 +1267,7 @@ WCharArray_set_value(CDataObject *self, PyObject *value)
         return -1;
     } else
         Py_INCREF(value);
-    if ((unsigned)PyUnicode_GET_SIZE(value) > self->b_size/sizeof(wchar_t)) {
+    if ((size_t)PyUnicode_GET_SIZE(value) > self->b_size/sizeof(wchar_t)) {
         PyErr_SetString(PyExc_ValueError,
                         "string too long");
         result = -1;