74 lines
2.1 KiB
Diff
Executable File
74 lines
2.1 KiB
Diff
Executable File
From 377c1b91e67af25613ccb72ee26449661cea8d8e Mon Sep 17 00:00:00 2001
|
|
From: NIIBE Yutaka <gniibe@fsij.org>
|
|
Date: Thu, 8 Nov 2018 13:26:41 +0900
|
|
Subject: [PATCH 12/18] w32: Use cast by uintptr_t for thread ID.
|
|
|
|
* w32/npth.c (npth_init): Cast with uintptr_t.
|
|
(npth_setname_np, npth_create, npth_self): Likewise.
|
|
|
|
--
|
|
|
|
In w32/npth.h, npth_t is unsigned long int type, which is 32-bit
|
|
for both of 32-bit machine and 64-bit machine.
|
|
|
|
We use TlsSetValue, TlsGetValue and CreateThread API to handle
|
|
thread ID, which uses void * type, which is 64-bit on 64-bit
|
|
machine.
|
|
|
|
Because the size is different on 64-bit machine, here, we use explicit
|
|
cast to integer type which has enough size to have pointer.
|
|
|
|
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
|
|
---
|
|
w32/npth.c | 10 +++++-----
|
|
1 file changed, 5 insertions(+), 5 deletions(-)
|
|
|
|
diff --git a/w32/npth.c b/w32/npth.c
|
|
index 6ea6d19..41213c0 100644
|
|
--- a/w32/npth.c
|
|
+++ b/w32/npth.c
|
|
@@ -351,7 +351,7 @@ npth_init (void)
|
|
thread = thread_table[thread_id];
|
|
thread->handle = handle;
|
|
|
|
- if (! TlsSetValue(tls_index, (LPVOID) thread_id))
|
|
+ if (! TlsSetValue(tls_index, (LPVOID)(uintptr_t) thread_id))
|
|
return map_error (GetLastError());
|
|
|
|
LEAVE();
|
|
@@ -449,11 +449,11 @@ npth_setname_np (npth_t target_thread, const char *name)
|
|
static DWORD
|
|
thread_start (void *arg)
|
|
{
|
|
- npth_t thread_id = (npth_t) arg;
|
|
+ npth_t thread_id = (npth_t)(uintptr_t) arg;
|
|
npth_impl_t thread;
|
|
void *result;
|
|
|
|
- if (! TlsSetValue(tls_index, (LPVOID) thread_id))
|
|
+ if (! TlsSetValue(tls_index, (LPVOID)(uintptr_t) thread_id))
|
|
/* FIXME: There is not much we can do here. */
|
|
;
|
|
|
|
@@ -519,7 +519,7 @@ npth_create (npth_t *newthread, const npth_attr_t *user_attr,
|
|
|
|
handle = CreateThread (NULL, 0,
|
|
(LPTHREAD_START_ROUTINE)thread_start,
|
|
- (void *) thread_id, CREATE_SUSPENDED,
|
|
+ (void *)(uintptr_t) thread_id, CREATE_SUSPENDED,
|
|
NULL);
|
|
if (handle == NULL)
|
|
{
|
|
@@ -556,7 +556,7 @@ npth_self (void)
|
|
if (thread_id == 0 && GetLastError() != ERROR_SUCCESS)
|
|
/* FIXME: Log the error. */
|
|
;
|
|
- return (npth_t) thread_id;
|
|
+ return (npth_t)(uintptr_t) thread_id;
|
|
}
|
|
|
|
|
|
--
|
|
1.8.3.1
|
|
|