safer conversion to HANDLER on MinGW-W64
authorRedirect 'Slash' NIL <redirect.slash.nil@gmail.com>
Sun, 18 Oct 2009 05:18:38 +0000 (22:18 -0700)
committerDavid Brownell <dbrownell@users.sourceforge.net>
Sun, 18 Oct 2009 05:18:38 +0000 (22:18 -0700)
Assign to "intptr_t", which on some versions of MS-Windows
will widen the variable; then cast to HANDLE.

src/helper/replacements.c

index 77e4ee7a35a25e6acdcde7cba2b990f1fc0b150e..ef20e7710660c0f186e64a5032f155e16644aa67 100644 (file)
@@ -169,7 +169,7 @@ int win_select(int max_fd, fd_set *rfds, fd_set *wfds, fd_set *efds, struct time
        /* build an array of handles for non-sockets */
        for (i = 0; i < max_fd; i++) {
                if (SAFE_FD_ISSET(i, rfds) || SAFE_FD_ISSET(i, wfds) || SAFE_FD_ISSET(i, efds)) {
-                       long handle = _get_osfhandle(i);
+                       intptr_t handle = (intptr_t) _get_osfhandle(i);
                        handles[n_handles] = (HANDLE)handle;
                        if (handles[n_handles] == INVALID_HANDLE_VALUE) {
                                /* socket */
@@ -244,7 +244,7 @@ int win_select(int max_fd, fd_set *rfds, fd_set *wfds, fd_set *efds, struct time
                                        if (WAIT_OBJECT_0 == WaitForSingleObject(handles[i], 0)) {
                                                if (SAFE_FD_ISSET(handle_slot_to_fd[i], rfds)) {
                                                        DWORD dwBytes;
-                                                       long handle = _get_osfhandle(handle_slot_to_fd[i]);
+                                                       intptr_t handle = (intptr_t) _get_osfhandle(handle_slot_to_fd[i]);
 
                                                        if (PeekNamedPipe((HANDLE)handle, NULL, 0, NULL, &dwBytes, NULL))
                                                        {