diff options
author | Victor Stinner <victor.stinner@gmail.com> | 2017-08-22 22:58:43 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-08-22 22:58:43 (GMT) |
commit | cb7fdf69ec9235cb358580f189089eaf575fb9df (patch) | |
tree | e4ab3983ce2c247b81ed6cbc5e611e4821114ae8 | |
parent | 8e572491b59c2334723bfd7411ab2a9fbd100f70 (diff) | |
download | cpython-cb7fdf69ec9235cb358580f189089eaf575fb9df.zip cpython-cb7fdf69ec9235cb358580f189089eaf575fb9df.tar.gz cpython-cb7fdf69ec9235cb358580f189089eaf575fb9df.tar.bz2 |
bpo-28667: Fix a compile warning on FreeBSD when compare with FD_SETSIZE. (#501) (#3190)
FreeBSD is the only platforms with unsigned FD_SETSIZE.
(cherry picked from commit 783d0c1a1c723733adcdf4249240246fc35a5bcb)
-rw-r--r-- | Include/fileobject.h | 2 | ||||
-rw-r--r-- | Modules/selectmodule.c | 8 |
2 files changed, 5 insertions, 5 deletions
diff --git a/Include/fileobject.h b/Include/fileobject.h index 6120e51..1dde17e 100644 --- a/Include/fileobject.h +++ b/Include/fileobject.h @@ -39,7 +39,7 @@ PyAPI_DATA(PyTypeObject) PyStdPrinter_Type; /* A routine to check if a file descriptor can be select()-ed. */ #ifdef HAVE_SELECT - #define _PyIsSelectable_fd(FD) (((FD) >= 0) && ((FD) < FD_SETSIZE)) + #define _PyIsSelectable_fd(FD) ((unsigned int)(FD) < (unsigned int)FD_SETSIZE) #else #define _PyIsSelectable_fd(FD) (1) #endif /* HAVE_SELECT */ diff --git a/Modules/selectmodule.c b/Modules/selectmodule.c index 47da493..07a20c8 100644 --- a/Modules/selectmodule.c +++ b/Modules/selectmodule.c @@ -68,8 +68,8 @@ typedef struct { static void reap_obj(pylist fd2obj[FD_SETSIZE + 1]) { - int i; - for (i = 0; i < FD_SETSIZE + 1 && fd2obj[i].sentinel >= 0; i++) { + unsigned int i; + for (i = 0; i < (unsigned int)FD_SETSIZE + 1 && fd2obj[i].sentinel >= 0; i++) { Py_CLEAR(fd2obj[i].obj); } fd2obj[0].sentinel = -1; @@ -83,7 +83,7 @@ static int seq2set(PyObject *seq, fd_set *set, pylist fd2obj[FD_SETSIZE + 1]) { int max = -1; - int index = 0; + unsigned int index = 0; Py_ssize_t i; PyObject* fast_seq = NULL; PyObject* o = NULL; @@ -120,7 +120,7 @@ seq2set(PyObject *seq, fd_set *set, pylist fd2obj[FD_SETSIZE + 1]) FD_SET(v, set); /* add object and its file descriptor to the list */ - if (index >= FD_SETSIZE) { + if (index >= (unsigned int)FD_SETSIZE) { PyErr_SetString(PyExc_ValueError, "too many file descriptors in select()"); goto finally; |