mirror of
https://github.com/libsdl-org/SDL.git
synced 2026-02-15 00:03:16 +00:00
Fixed OS/2 build
This commit is contained in:
@@ -34,45 +34,22 @@
|
||||
|
||||
SDL_TLSData **ppSDLTLSData = NULL;
|
||||
|
||||
static ULONG cTLSAlloc = 0;
|
||||
|
||||
/* SDL_OS2TLSAlloc() called from SDL_InitSubSystem() */
|
||||
void SDL_OS2TLSAlloc(void)
|
||||
void SDL_SYS_InitTLSData(void)
|
||||
{
|
||||
ULONG ulRC;
|
||||
|
||||
if (cTLSAlloc == 0 || !ppSDLTLSData) {
|
||||
/* First call - allocate the thread local memory (1 DWORD) */
|
||||
if (!ppSDLTLSData) {
|
||||
/* Allocate the thread local memory (1 DWORD) */
|
||||
ulRC = DosAllocThreadLocalMemory(1, (PULONG *)&ppSDLTLSData);
|
||||
if (ulRC != NO_ERROR) {
|
||||
debug_os2("DosAllocThreadLocalMemory() failed, rc = %u", ulRC);
|
||||
}
|
||||
}
|
||||
cTLSAlloc++;
|
||||
}
|
||||
|
||||
/* SDL_OS2TLSFree() called from SDL_QuitSubSystem() */
|
||||
void SDL_OS2TLSFree(void)
|
||||
{
|
||||
ULONG ulRC;
|
||||
|
||||
if (cTLSAlloc != 0)
|
||||
cTLSAlloc--;
|
||||
|
||||
if (cTLSAlloc == 0 && ppSDLTLSData) {
|
||||
/* Last call - free the thread local memory */
|
||||
ulRC = DosFreeThreadLocalMemory((PULONG)ppSDLTLSData);
|
||||
if (ulRC != NO_ERROR) {
|
||||
debug_os2("DosFreeThreadLocalMemory() failed, rc = %u", ulRC);
|
||||
} else {
|
||||
ppSDLTLSData = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SDL_TLSData *SDL_SYS_GetTLSData(void)
|
||||
{
|
||||
return (!ppSDLTLSData)? NULL : *ppSDLTLSData;
|
||||
return ppSDLTLSData ? *ppSDLTLSData : NULL;
|
||||
}
|
||||
|
||||
int SDL_SYS_SetTLSData(SDL_TLSData *data)
|
||||
@@ -84,6 +61,21 @@ int SDL_SYS_SetTLSData(SDL_TLSData *data)
|
||||
return 0;
|
||||
}
|
||||
|
||||
void SDL_SYS_QuitTLSData(void)
|
||||
{
|
||||
ULONG ulRC;
|
||||
|
||||
if (ppSDLTLSData) {
|
||||
/* Free the thread local memory */
|
||||
ulRC = DosFreeThreadLocalMemory((PULONG)ppSDLTLSData);
|
||||
if (ulRC != NO_ERROR) {
|
||||
debug_os2("DosFreeThreadLocalMemory() failed, rc = %u", ulRC);
|
||||
} else {
|
||||
ppSDLTLSData = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* SDL_THREAD_OS2 */
|
||||
|
||||
/* vi: set ts=4 sw=4 expandtab: */
|
||||
|
||||
@@ -27,12 +27,4 @@
|
||||
|
||||
extern SDL_TLSData **ppSDLTLSData;
|
||||
|
||||
/* SDL_OS2TLSAlloc() called from SDL_InitSubSystem() */
|
||||
void SDL_OS2TLSAlloc(void);
|
||||
|
||||
/* SDL_OS2TLSFree() called from SDL_QuitSubSystem() */
|
||||
void SDL_OS2TLSFree(void);
|
||||
|
||||
#endif /* SDL_THREAD_OS2 */
|
||||
|
||||
/* vi: set ts=4 sw=4 expandtab: */
|
||||
|
||||
Reference in New Issue
Block a user