Commit e65349d4 authored by Mike McCormack's avatar Mike McCormack Committed by Alexandre Julliard

server: Cast user handles to unsigned long for win64 compatibility.

parent e1c16ff3
...@@ -36,10 +36,10 @@ static int allocated_handles; ...@@ -36,10 +36,10 @@ static int allocated_handles;
static struct user_handle *handle_to_entry( user_handle_t handle ) static struct user_handle *handle_to_entry( user_handle_t handle )
{ {
unsigned short generation; unsigned short generation;
int index = (((unsigned int)handle & 0xffff) - FIRST_USER_HANDLE) >> 1; int index = (((unsigned long)handle & 0xffff) - FIRST_USER_HANDLE) >> 1;
if (index < 0 || index >= nb_handles) return NULL; if (index < 0 || index >= nb_handles) return NULL;
if (!handles[index].type) return NULL; if (!handles[index].type) return NULL;
generation = (unsigned int)handle >> 16; generation = (unsigned long)handle >> 16;
if (generation == handles[index].generation || !generation || generation == 0xffff) if (generation == handles[index].generation || !generation || generation == 0xffff)
return &handles[index]; return &handles[index];
return NULL; return NULL;
...@@ -48,7 +48,7 @@ static struct user_handle *handle_to_entry( user_handle_t handle ) ...@@ -48,7 +48,7 @@ static struct user_handle *handle_to_entry( user_handle_t handle )
inline static user_handle_t entry_to_handle( struct user_handle *ptr ) inline static user_handle_t entry_to_handle( struct user_handle *ptr )
{ {
int index = ptr - handles; int index = ptr - handles;
return (user_handle_t)(((index << 1) + FIRST_USER_HANDLE) + (ptr->generation << 16)); return (user_handle_t)((((unsigned long)index << 1) + FIRST_USER_HANDLE) + (ptr->generation << 16));
} }
inline static struct user_handle *alloc_user_entry(void) inline static struct user_handle *alloc_user_entry(void)
...@@ -113,7 +113,7 @@ user_handle_t get_user_full_handle( user_handle_t handle ) ...@@ -113,7 +113,7 @@ user_handle_t get_user_full_handle( user_handle_t handle )
{ {
struct user_handle *entry; struct user_handle *entry;
if ((unsigned int)handle >> 16) return handle; if ((unsigned long)handle >> 16) return handle;
if (!(entry = handle_to_entry( handle ))) return handle; if (!(entry = handle_to_entry( handle ))) return handle;
return entry_to_handle( entry ); return entry_to_handle( entry );
} }
...@@ -149,7 +149,7 @@ void *next_user_handle( user_handle_t *handle, enum user_object type ) ...@@ -149,7 +149,7 @@ void *next_user_handle( user_handle_t *handle, enum user_object type )
if (!*handle) entry = handles; if (!*handle) entry = handles;
else else
{ {
int index = (((unsigned int)*handle & 0xffff) - FIRST_USER_HANDLE) >> 1; int index = (((unsigned long)*handle & 0xffff) - FIRST_USER_HANDLE) >> 1;
if (index < 0 || index >= nb_handles) return NULL; if (index < 0 || index >= nb_handles) return NULL;
entry = handles + index + 1; /* start from the next one */ entry = handles + index + 1; /* start from the next one */
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment