From cef8847a0607727e06d4ff07ab40562c1766353e Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Sun, 6 Sep 2009 01:05:27 -0400 Subject: [PATCH] Attempt to clean up the thread ID mess in platform_unix ... --- src/physfs.c | 4 ++-- src/physfs_internal.h | 8 ++++---- src/platform_beos.cpp | 4 ++-- src/platform_macosx.c | 4 ++-- src/platform_os2.c | 4 ++-- src/platform_pocketpc.c | 4 ++-- src/platform_unix.c | 20 +++----------------- src/platform_windows.c | 4 ++-- 8 files changed, 19 insertions(+), 33 deletions(-) diff --git a/src/physfs.c b/src/physfs.c index 087c2d12..ae738fe9 100644 --- a/src/physfs.c +++ b/src/physfs.c @@ -43,7 +43,7 @@ typedef struct __PHYSFS_FILEHANDLE__ typedef struct __PHYSFS_ERRMSGTYPE__ { - PHYSFS_uint64 tid; + void *tid; int errorAvailable; char errorString[80]; struct __PHYSFS_ERRMSGTYPE__ *next; @@ -268,7 +268,7 @@ void __PHYSFS_sort(void *entries, PHYSFS_uint32 max, static ErrMsg *findErrorForCurrentThread(void) { ErrMsg *i; - PHYSFS_uint64 tid; + void *tid; if (errorLock != NULL) __PHYSFS_platformGrabMutex(errorLock); diff --git a/src/physfs_internal.h b/src/physfs_internal.h index 08544cb2..898793d9 100644 --- a/src/physfs_internal.h +++ b/src/physfs_internal.h @@ -1307,12 +1307,12 @@ char *__PHYSFS_platformGetUserName(void); char *__PHYSFS_platformGetUserDir(void); /* - * Return a number that uniquely identifies the current thread. - * On a platform without threading, (1) will suffice. These numbers are + * Return a pointer that uniquely identifies the current thread. + * On a platform without threading, (0x1) will suffice. These numbers are * arbitrary; the only requirement is that no two threads have the same - * number. + * pointer. */ -PHYSFS_uint64 __PHYSFS_platformGetThreadID(void); +void *__PHYSFS_platformGetThreadID(void); /* * Return non-zero if filename (in platform-dependent notation) exists. diff --git a/src/platform_beos.cpp b/src/platform_beos.cpp index 1e35f29b..c2a12e98 100644 --- a/src/platform_beos.cpp +++ b/src/platform_beos.cpp @@ -194,9 +194,9 @@ char *__PHYSFS_platformCalcBaseDir(const char *argv0) } /* __PHYSFS_platformCalcBaseDir */ -PHYSFS_uint64 __PHYSFS_platformGetThreadID(void) +void *__PHYSFS_platformGetThreadID(void) { - return((PHYSFS_uint64) find_thread(NULL)); + return((void *) find_thread(NULL)); } /* __PHYSFS_platformGetThreadID */ diff --git a/src/platform_macosx.c b/src/platform_macosx.c index 4dde270c..0f069e02 100644 --- a/src/platform_macosx.c +++ b/src/platform_macosx.c @@ -353,9 +353,9 @@ int __PHYSFS_platformSetDefaultAllocator(PHYSFS_Allocator *a) } /* __PHYSFS_platformSetDefaultAllocator */ -PHYSFS_uint64 __PHYSFS_platformGetThreadID(void) +void *__PHYSFS_platformGetThreadID(void) { - return( (PHYSFS_uint64) ((size_t) MPCurrentTaskID()) ); + return( (void *) ((size_t) MPCurrentTaskID()) ); } /* __PHYSFS_platformGetThreadID */ diff --git a/src/platform_os2.c b/src/platform_os2.c index 0661df96..6827b2f8 100644 --- a/src/platform_os2.c +++ b/src/platform_os2.c @@ -658,7 +658,7 @@ PHYSFS_sint64 __PHYSFS_platformGetLastModTime(const char *_fname) } /* __PHYSFS_platformGetLastModTime */ -PHYSFS_uint64 __PHYSFS_platformGetThreadID(void) +void *__PHYSFS_platformGetThreadID(void) { PTIB ptib; PPIB ppib; @@ -668,7 +668,7 @@ PHYSFS_uint64 __PHYSFS_platformGetThreadID(void) * default value (zero might as well do) if it does. */ BAIL_IF_MACRO(os2err(DosGetInfoBlocks(&ptib, &ppib)) != NO_ERROR, 0, 0); - return((PHYSFS_uint64) ptib->tib_ordinal); + return((void *) ptib->tib_ordinal); } /* __PHYSFS_platformGetThreadID */ diff --git a/src/platform_pocketpc.c b/src/platform_pocketpc.c index badb0db3..063b32ac 100644 --- a/src/platform_pocketpc.c +++ b/src/platform_pocketpc.c @@ -161,9 +161,9 @@ char *__PHYSFS_platformGetUserDir(void) } /* __PHYSFS_platformGetUserDir */ -PHYSFS_uint64 __PHYSFS_platformGetThreadID(void) +void *__PHYSFS_platformGetThreadID(void) { - return(1); /* single threaded. */ + return((void *)1); /* single threaded. */ /* !!! FIXME: is this true? */ } /* __PHYSFS_platformGetThreadID */ diff --git a/src/platform_unix.c b/src/platform_unix.c index f63e4656..1bf1ab55 100644 --- a/src/platform_unix.c +++ b/src/platform_unix.c @@ -347,7 +347,7 @@ int __PHYSFS_platformSetDefaultAllocator(PHYSFS_Allocator *a) #if (defined PHYSFS_NO_PTHREADS_SUPPORT) -PHYSFS_uint64 __PHYSFS_platformGetThreadID(void) { return(0x0001); } +void *__PHYSFS_platformGetThreadID(void) { return((void *) 0x0001); } void *__PHYSFS_platformCreateMutex(void) { return((void *) 0x0001); } void __PHYSFS_platformDestroyMutex(void *mutex) {} int __PHYSFS_platformGrabMutex(void *mutex) { return(1); } @@ -362,24 +362,10 @@ typedef struct PHYSFS_uint32 count; } PthreadMutex; -/* Just in case; this is a panic value. */ -#if ((!defined SIZEOF_INT) || (SIZEOF_INT <= 0)) -# define SIZEOF_INT 4 -#endif - -#if (SIZEOF_INT == 4) -# define PHTREAD_TO_UI64(thr) ( (PHYSFS_uint64) ((PHYSFS_uint32) (thr)) ) -#elif (SIZEOF_INT == 2) -# define PHTREAD_TO_UI64(thr) ( (PHYSFS_uint64) ((PHYSFS_uint16) (thr)) ) -#elif (SIZEOF_INT == 1) -# define PHTREAD_TO_UI64(thr) ( (PHYSFS_uint64) ((PHYSFS_uint8) (thr)) ) -#else -# define PHTREAD_TO_UI64(thr) ((PHYSFS_uint64) (thr)) -#endif -PHYSFS_uint64 __PHYSFS_platformGetThreadID(void) +void *__PHYSFS_platformGetThreadID(void) { - return(PHTREAD_TO_UI64(pthread_self())); + return( (void *) ((size_t) pthread_self()) ); } /* __PHYSFS_platformGetThreadID */ diff --git a/src/platform_windows.c b/src/platform_windows.c index b4096ad3..40abae03 100644 --- a/src/platform_windows.c +++ b/src/platform_windows.c @@ -559,9 +559,9 @@ char *__PHYSFS_platformGetUserDir(void) } /* __PHYSFS_platformGetUserDir */ -PHYSFS_uint64 __PHYSFS_platformGetThreadID(void) +void *__PHYSFS_platformGetThreadID(void) { - return((PHYSFS_uint64) GetCurrentThreadId()); + return( (void *) ((size_t) GetCurrentThreadId()) ); } /* __PHYSFS_platformGetThreadID */