Added handle_t type to server interface so that we can make handles
pointers later on.
Always use 0 to signal invalid handle in server requests.
diff --git a/dlls/kernel/sync.c b/dlls/kernel/sync.c
index fddc48b..fad92a3 100644
--- a/dlls/kernel/sync.c
+++ b/dlls/kernel/sync.c
@@ -44,7 +44,6 @@
ret = req->handle;
}
SERVER_END_REQ;
- if (ret == -1) ret = 0; /* must return 0 on failure, not -1 */
return ret;
}
@@ -84,7 +83,6 @@
ret = req->handle;
}
SERVER_END_REQ;
- if (ret == -1) ret = 0; /* must return 0 on failure, not -1 */
return ret;
}
@@ -121,7 +119,6 @@
ret = req->handle;
}
SERVER_END_REQ;
- if (ret == -1) ret = 0; /* must return 0 on failure, not -1 */
return ret;
}
@@ -149,7 +146,6 @@
ret = req->handle;
}
SERVER_END_REQ;
- if (ret == -1) ret = 0; /* must return 0 on failure, not -1 */
return ret;
}
@@ -271,7 +267,6 @@
ret = req->handle;
}
SERVER_END_REQ;
- if (ret == -1) ret = 0; /* must return 0 on failure, not -1 */
return ret;
}
@@ -300,7 +295,6 @@
ret = req->handle;
}
SERVER_END_REQ;
- if (ret == -1) ret = 0; /* must return 0 on failure, not -1 */
return ret;
}
@@ -333,7 +327,6 @@
ret = req->handle;
}
SERVER_END_REQ;
- if (ret == -1) ret = 0; /* must return 0 on failure, not -1 */
return ret;
}
@@ -361,7 +354,6 @@
ret = req->handle;
}
SERVER_END_REQ;
- if (ret == -1) ret = 0; /* must return 0 on failure, not -1 */
return ret;
}
@@ -423,7 +415,6 @@
ret = req->handle;
}
SERVER_END_REQ;
- if (ret == -1) ret = 0; /* must return 0 on failure, not -1 */
return ret;
}
@@ -464,7 +455,6 @@
ret = req->handle;
}
SERVER_END_REQ;
- if (ret == -1) ret = 0; /* must return 0 on failure, not -1 */
return ret;
}
@@ -492,7 +482,6 @@
ret = req->handle;
}
SERVER_END_REQ;
- if (ret == -1) ret = 0; /* must return 0 on failure, not -1 */
return ret;
}
@@ -519,7 +508,6 @@
ret = req->handle;
}
SERVER_END_REQ;
- if (ret == -1) ret = 0; /* must return 0 on failure, not -1 */
return ret;
}
diff --git a/dlls/kernel/toolhelp.c b/dlls/kernel/toolhelp.c
index fccb241..c2486dc 100644
--- a/dlls/kernel/toolhelp.c
+++ b/dlls/kernel/toolhelp.c
@@ -212,6 +212,7 @@
ret = req->handle;
}
SERVER_END_REQ;
+ if (!ret) ret = INVALID_HANDLE_VALUE;
return ret;
}
diff --git a/dlls/ntdll/reg.c b/dlls/ntdll/reg.c
index 12f884f..5ea5812 100644
--- a/dlls/ntdll/reg.c
+++ b/dlls/ntdll/reg.c
@@ -107,7 +107,6 @@
if (len > MAX_NAME_LENGTH) return STATUS_BUFFER_OVERFLOW;
if (!retkey) return STATUS_INVALID_PARAMETER;
- *retkey = 0;
SERVER_START_REQ
{
@@ -115,7 +114,8 @@
req->parent = attr->RootDirectory;
req->access = access;
memcpy( server_data_ptr(req), attr->ObjectName->Buffer, len );
- if (!(ret = server_call_noerr( REQ_OPEN_KEY ))) *retkey = req->hkey;
+ ret = server_call_noerr( REQ_OPEN_KEY );
+ *retkey = req->hkey;
}
SERVER_END_REQ;
return ret;
diff --git a/dlls/ntdll/sync.c b/dlls/ntdll/sync.c
index 928a244..82de172 100644
--- a/dlls/ntdll/sync.c
+++ b/dlls/ntdll/sync.c
@@ -36,8 +36,6 @@
if ((MaximumCount <= 0) || (InitialCount < 0) || (InitialCount > MaximumCount))
return STATUS_INVALID_PARAMETER;
- *SemaphoreHandle = 0;
-
SERVER_START_REQ
{
struct create_semaphore_request *req = server_alloc_req( sizeof(*req), len );
@@ -45,8 +43,8 @@
req->max = MaximumCount;
req->inherit = attr && (attr->Attributes & OBJ_INHERIT);
if (len) memcpy( server_data_ptr(req), attr->ObjectName->Buffer, len );
- if (!(ret = server_call_noerr( REQ_CREATE_SEMAPHORE )))
- *SemaphoreHandle = req->handle;
+ ret = server_call_noerr( REQ_CREATE_SEMAPHORE );
+ *SemaphoreHandle = req->handle;
}
SERVER_END_REQ;
return ret;
@@ -62,16 +60,14 @@
DWORD len = attr && attr->ObjectName ? attr->ObjectName->Length : 0;
NTSTATUS ret;
- *SemaphoreHandle = 0;
-
SERVER_START_REQ
{
struct open_semaphore_request *req = server_alloc_req( sizeof(*req), len );
req->access = access;
req->inherit = attr && (attr->Attributes & OBJ_INHERIT);
if (len) memcpy( server_data_ptr(req), attr->ObjectName->Buffer, len );
- if (!(ret = server_call_noerr( REQ_OPEN_SEMAPHORE )))
- *SemaphoreHandle = req->handle;
+ ret = server_call_noerr( REQ_OPEN_SEMAPHORE );
+ *SemaphoreHandle = req->handle;
}
SERVER_END_REQ;
return ret;
@@ -129,8 +125,6 @@
DWORD len = attr && attr->ObjectName ? attr->ObjectName->Length : 0;
NTSTATUS ret;
- *EventHandle = 0;
-
SERVER_START_REQ
{
struct create_event_request *req = server_alloc_req( sizeof(*req), len );
@@ -138,7 +132,8 @@
req->initial_state = InitialState;
req->inherit = attr && (attr->Attributes & OBJ_INHERIT);
if (len) memcpy( server_data_ptr(req), attr->ObjectName->Buffer, len );
- if (!(ret = server_call_noerr( REQ_CREATE_EVENT ))) *EventHandle = req->handle;
+ ret = server_call_noerr( REQ_CREATE_EVENT );
+ *EventHandle = req->handle;
}
SERVER_END_REQ;
return ret;
@@ -155,8 +150,6 @@
DWORD len = attr && attr->ObjectName ? attr->ObjectName->Length : 0;
NTSTATUS ret;
- *EventHandle = 0;
-
SERVER_START_REQ
{
struct open_event_request *req = server_alloc_req( sizeof(*req), len );
@@ -164,7 +157,8 @@
req->access = DesiredAccess;
req->inherit = attr && (attr->Attributes & OBJ_INHERIT);
if (len) memcpy( server_data_ptr(req), attr->ObjectName->Buffer, len );
- if (!(ret = server_call_noerr( REQ_OPEN_EVENT ))) *EventHandle = req->handle;
+ ret = server_call_noerr( REQ_OPEN_EVENT );
+ *EventHandle = req->handle;
}
SERVER_END_REQ;
return ret;
diff --git a/dlls/winsock/socket.c b/dlls/winsock/socket.c
index d0a09e8..15e765c 100644
--- a/dlls/winsock/socket.c
+++ b/dlls/winsock/socket.c
@@ -818,10 +818,10 @@
req->access = GENERIC_READ|GENERIC_WRITE|SYNCHRONIZE;
req->inherit = TRUE;
sock_server_call( REQ_ACCEPT_SOCKET );
- as = req->handle;
+ as = (SOCKET)req->handle;
}
SERVER_END_REQ;
- if( ((int)as) >= 0 )
+ if (as)
{
unsigned omask = _get_sock_mask( s );
int fd = _get_sock_fd( as );
@@ -2223,10 +2223,10 @@
req->access = GENERIC_READ|GENERIC_WRITE|SYNCHRONIZE;
req->inherit = TRUE;
sock_server_call( REQ_CREATE_SOCKET );
- ret = req->handle;
+ ret = (SOCKET)req->handle;
}
SERVER_END_REQ;
- if ( ((int) ret) >= 0)
+ if (ret)
{
TRACE("\tcreated %04x\n", ret );
return ret;