瀏覽代碼

Backport from default branch: clean up the thread ID mess in platform_unix.

Backported from hg changeset f254870dd7dd.
Ryan C. Gordon 13 年之前
父節點
當前提交
c188729b12
共有 8 個文件被更改,包括 19 次插入34 次删除
  1. 2 2
      physfs.c
  2. 4 4
      physfs_internal.h
  3. 2 2
      platform/beos.cpp
  4. 2 2
      platform/macosx.c
  5. 2 2
      platform/os2.c
  6. 2 2
      platform/pocketpc.c
  7. 3 18
      platform/unix.c
  8. 2 2
      platform/windows.c

+ 2 - 2
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;
@@ -269,7 +269,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);

+ 4 - 4
physfs_internal.h

@@ -1305,12 +1305,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.

+ 2 - 2
platform/beos.cpp

@@ -197,9 +197,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 */
 
 

+ 2 - 2
platform/macosx.c

@@ -376,9 +376,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 */
 
 

+ 2 - 2
platform/os2.c

@@ -649,7 +649,7 @@ PHYSFS_sint64 __PHYSFS_platformGetLastModTime(const char *fname)
 } /* __PHYSFS_platformGetLastModTime */
 
 
-PHYSFS_uint64 __PHYSFS_platformGetThreadID(void)
+void *__PHYSFS_platformGetThreadID(void)
 {
     PTIB ptib;
     PPIB ppib;
@@ -659,7 +659,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 */
 
 

+ 2 - 2
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. */
 } /* __PHYSFS_platformGetThreadID */
 
 

+ 3 - 18
platform/unix.c

@@ -342,7 +342,7 @@ int __PHYSFS_platformSetDefaultAllocator(PHYSFS_Allocator *a)
 
 #if (defined PHYSFS_NO_THREAD_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); }
@@ -357,24 +357,9 @@ 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 */
 
 

+ 2 - 2
platform/windows.c

@@ -560,9 +560,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 */