From 27b824b6a5d858476d4b9d075d69b9cd7c4b4ea1 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Mon, 6 Mar 2006 06:00:45 +0000 Subject: [PATCH] Fixed declarations to match mingw includes --- include/SDL_config_win32.h | 2 +- include/SDL_thread.h | 5 +++++ src/thread/win32/SDL_systhread.c | 16 ++++++++-------- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/include/SDL_config_win32.h b/include/SDL_config_win32.h index 049c38879..f393ea4f7 100644 --- a/include/SDL_config_win32.h +++ b/include/SDL_config_win32.h @@ -52,7 +52,7 @@ typedef unsigned int uint32_t; typedef signed long long int64_t; typedef unsigned long long uint64_t; typedef unsigned int size_t; -typedef unsigned long uintptr_t; +typedef unsigned int uintptr_t; #endif /* _MSC_VER */ #define SDL_HAS_64BIT_TYPE 1 diff --git a/include/SDL_thread.h b/include/SDL_thread.h index fc430224f..79eca0964 100644 --- a/include/SDL_thread.h +++ b/include/SDL_thread.h @@ -69,6 +69,11 @@ typedef struct SDL_Thread SDL_Thread; #ifdef __OS2__ typedef int (*pfnSDL_CurrentBeginThread)(void (*func)(void *), void *, unsigned, void *arg); typedef void (*pfnSDL_CurrentEndThread)(void); +#elif __GNUC__ +typedef unsigned long (__cdecl *pfnSDL_CurrentBeginThread) (void *, unsigned, + unsigned (__stdcall *func)(void *), void *arg, + unsigned, unsigned *threadID); +typedef void (__cdecl *pfnSDL_CurrentEndThread)(unsigned code); #else typedef uintptr_t (__cdecl *pfnSDL_CurrentBeginThread) (void *, unsigned, unsigned (__stdcall *func)(void *), void *arg, diff --git a/src/thread/win32/SDL_systhread.c b/src/thread/win32/SDL_systhread.c index 968e6b4df..cb5809043 100644 --- a/src/thread/win32/SDL_systhread.c +++ b/src/thread/win32/SDL_systhread.c @@ -59,16 +59,16 @@ static unsigned __stdcall RunThread(void *data) int SDL_SYS_CreateThread(SDL_Thread *thread, void *args, pfnSDL_CurrentBeginThread pfnBeginThread, pfnSDL_CurrentEndThread pfnEndThread) { unsigned threadid; - pThreadStartParms pThreadParms = (pThreadStartParms)SDL_malloc(sizeof(tThreadStartParms)); - if (!pThreadParms) { + pThreadStartParms pThreadParms = (pThreadStartParms)SDL_malloc(sizeof(tThreadStartParms)); + if (!pThreadParms) { SDL_OutOfMemory(); - return(-1); - } + return(-1); + } - // Save the function which we will have to call to clear the RTL of calling app! - pThreadParms->pfnCurrentEndThread = pfnEndThread; - // Also save the real parameters we have to pass to thread function - pThreadParms->args = args; + // Save the function which we will have to call to clear the RTL of calling app! + pThreadParms->pfnCurrentEndThread = pfnEndThread; + // Also save the real parameters we have to pass to thread function + pThreadParms->args = args; if (pfnBeginThread) { thread->handle = (SYS_ThreadHandle) pfnBeginThread(NULL, 0, RunThread,