X-Git-Url: https://git.reactos.org/?p=reactos.git;a=blobdiff_plain;f=dll%2Fopengl%2Fopengl32%2Fdllmain.c;h=65649751faa0b473ceff3dec576eb180fa8b1347;hp=9d4ced2114cda50ae4df552887ffe0646d25083a;hb=31acac46a1dbb45dc00f3ceb73ae9b04aee426df;hpb=1bc1185f8aae868a37c03421bc4fb398756ab6a2 diff --git a/dll/opengl/opengl32/dllmain.c b/dll/opengl/opengl32/dllmain.c index 9d4ced2114c..65649751faa 100644 --- a/dll/opengl/opengl32/dllmain.c +++ b/dll/opengl/opengl32/dllmain.c @@ -9,6 +9,22 @@ #ifdef OPENGL32_USE_TLS DWORD OglTlsIndex = 0xFFFFFFFF; + +BOOL init_tls_data(void) +{ + struct Opengl32_ThreadData* ThreadData; + + ThreadData = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*ThreadData)); + if(!ThreadData) + return FALSE; + TlsSetValue(OglTlsIndex, ThreadData); + ThreadData->glDispatchTable = &StubTable.glDispatchTable; + ThreadData->hglrc = NULL; + ThreadData->hdc = NULL; + ThreadData->dc_data = NULL; + return TRUE; +} + #endif BOOL WINAPI @@ -30,16 +46,8 @@ DllMain(HINSTANCE hInstance, DWORD Reason, LPVOID Reserved) /* no break */ case DLL_THREAD_ATTACH: #ifdef OPENGL32_USE_TLS - ThreadData = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*ThreadData)); - if(!ThreadData) + if (!init_tls_data()) return FALSE; - TlsSetValue(OglTlsIndex, ThreadData); - ThreadData->glDispatchTable = &StubTable.glDispatchTable; - ThreadData->hglrc = NULL; - ThreadData->hdc = NULL; - ThreadData->dc_data = NULL; -#else - NtCurrentTeb()->glTable = &StubTable.glDispatchTable; #endif // defined(OPENGL32_USE_TLS) break;