1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-07-02 12:02:47 -05:00

The Windows HANDLE type, despite being a `void *', does not actually

behave like a pointer. In particular, the right thing to set a
HANDLE to to indicate that it's invalid is INVALID_HANDLE_VALUE, not
NULL. Crack down on sloppy use of NULL HANDLEs across all Windows
code.

(There is one oddity, which is that {Create,Open}FileMapping are
documented to return a NULL HANDLE instead of INVALID_HANDLE_VALUE
on failure. Shrug. If MS want to be inconsistent, I suppose I have
to live with it.)

[originally from svn r6833]
This commit is contained in:
Simon Tatham
2006-08-29 18:32:44 +00:00
parent 088bc613ed
commit f0a9c33f25
4 changed files with 11 additions and 11 deletions

View File

@ -29,11 +29,11 @@ static void serial_terminate(Serial serial)
handle_free(serial->in);
serial->in = NULL;
}
if (serial->port) {
if (serial->port != INVALID_HANDLE_VALUE) {
if (serial->break_in_progress)
ClearCommBreak(serial->port);
CloseHandle(serial->port);
serial->port = NULL;
serial->port = INVALID_HANDLE_VALUE;
}
}
@ -208,7 +208,7 @@ static const char *serial_init(void *frontend_handle, void **backend_handle,
const char *err;
serial = snew(struct serial_backend_data);
serial->port = NULL;
serial->port = INVALID_HANDLE_VALUE;
serial->out = serial->in = NULL;
serial->bufsize = 0;
serial->break_in_progress = FALSE;
@ -391,7 +391,7 @@ static void serial_provide_logctx(void *handle, void *logctx)
static int serial_exitcode(void *handle)
{
Serial serial = (Serial) handle;
if (serial->port != NULL)
if (serial->port != INVALID_HANDLE_VALUE)
return -1; /* still connected */
else
/* Exit codes are a meaningless concept with serial ports */