[Python-checkins] cpython (merge 3.5 -> default): ctypes: the type of b_size is Py_ssize_t.

serhiy.storchaka python-checkins at python.org
Fri Jun 17 04:13:25 EDT 2016


https://hg.python.org/cpython/rev/7efe1a5239e3
changeset:   102070:7efe1a5239e3
parent:      102067:3e6792af95f0
parent:      102068:948652fb074d
user:        Serhiy Storchaka <storchaka at gmail.com>
date:        Fri Jun 17 11:13:03 2016 +0300
summary:
  ctypes: the type of b_size is Py_ssize_t.

files:
  Modules/_ctypes/_ctypes.c |  8 ++++----
  1 files changed, 4 insertions(+), 4 deletions(-)


diff --git a/Modules/_ctypes/_ctypes.c b/Modules/_ctypes/_ctypes.c
--- a/Modules/_ctypes/_ctypes.c
+++ b/Modules/_ctypes/_ctypes.c
@@ -1124,7 +1124,7 @@
 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')
@@ -1180,9 +1180,9 @@
 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);
@@ -1211,7 +1211,7 @@
     wstr = PyUnicode_AsUnicodeAndSize(value, &len);
     if (wstr == NULL)
         return -1;
-    if ((unsigned)len > self->b_size/sizeof(wchar_t)) {
+    if ((size_t)len > self->b_size/sizeof(wchar_t)) {
         PyErr_SetString(PyExc_ValueError,
                         "string too long");
         result = -1;

-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list