зеркало из https://github.com/microsoft/git.git
mingw: avoid warnings when casting HANDLEs to int
HANDLE is defined internally as a void *, but in many cases it is actually guaranteed to be a 32-bit integer. In these cases, GCC should not warn about a cast of a pointer to an integer of a different type because we know exactly what we are doing. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
59de49f80d
Коммит
7c00bc39eb
|
@ -6,6 +6,8 @@
|
|||
#include "../run-command.h"
|
||||
#include "../cache.h"
|
||||
|
||||
#define HCAST(type, handle) ((type)(intptr_t)handle)
|
||||
|
||||
static const int delay[] = { 0, 1, 10, 20, 40 };
|
||||
|
||||
int err_win_to_posix(DWORD winerr)
|
||||
|
@ -691,13 +693,13 @@ int pipe(int filedes[2])
|
|||
errno = err_win_to_posix(GetLastError());
|
||||
return -1;
|
||||
}
|
||||
filedes[0] = _open_osfhandle((int)h[0], O_NOINHERIT);
|
||||
filedes[0] = _open_osfhandle(HCAST(int, h[0]), O_NOINHERIT);
|
||||
if (filedes[0] < 0) {
|
||||
CloseHandle(h[0]);
|
||||
CloseHandle(h[1]);
|
||||
return -1;
|
||||
}
|
||||
filedes[1] = _open_osfhandle((int)h[1], O_NOINHERIT);
|
||||
filedes[1] = _open_osfhandle(HCAST(int, h[1]), O_NOINHERIT);
|
||||
if (filedes[1] < 0) {
|
||||
close(filedes[0]);
|
||||
CloseHandle(h[1]);
|
||||
|
@ -1846,7 +1848,8 @@ void mingw_open_html(const char *unixpath)
|
|||
die("cannot run browser");
|
||||
|
||||
printf("Launching default browser to display HTML ...\n");
|
||||
r = (int)ShellExecute(NULL, "open", htmlpath, NULL, "\\", SW_SHOWNORMAL);
|
||||
r = HCAST(int, ShellExecute(NULL, "open", htmlpath,
|
||||
NULL, "\\", SW_SHOWNORMAL));
|
||||
FreeLibrary(shell32);
|
||||
/* see the MSDN documentation referring to the result codes here */
|
||||
if (r <= 32) {
|
||||
|
|
|
@ -76,7 +76,7 @@
|
|||
|
||||
#ifdef WIN32_NATIVE
|
||||
|
||||
#define IsConsoleHandle(h) (((long) (h) & 3) == 3)
|
||||
#define IsConsoleHandle(h) (((long) (intptr_t) (h) & 3) == 3)
|
||||
|
||||
static BOOL
|
||||
IsSocketHandle (HANDLE h)
|
||||
|
|
|
@ -454,7 +454,8 @@ static HANDLE duplicate_handle(HANDLE hnd)
|
|||
HANDLE hresult, hproc = GetCurrentProcess();
|
||||
if (!DuplicateHandle(hproc, hnd, hproc, &hresult, 0, TRUE,
|
||||
DUPLICATE_SAME_ACCESS))
|
||||
die_lasterr("DuplicateHandle(%li) failed", (long) hnd);
|
||||
die_lasterr("DuplicateHandle(%li) failed",
|
||||
(long) (intptr_t) hnd);
|
||||
return hresult;
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче