mirror of
https://github.com/gwm17/glfw.git
synced 2024-11-23 10:48:51 -05:00
Fix deletion of uninitialized POSIX TLS key
Zero (the initial value of context) is a valid TLS key, so doing this can delete someone else's key. Fixes #627.
This commit is contained in:
parent
43f4afef78
commit
cdf08c1ff3
|
@ -41,12 +41,14 @@ int _glfwCreateContextTLS(void)
|
|||
return GLFW_FALSE;
|
||||
}
|
||||
|
||||
_glfw.posix_tls.allocated = GLFW_TRUE;
|
||||
return GLFW_TRUE;
|
||||
}
|
||||
|
||||
void _glfwDestroyContextTLS(void)
|
||||
{
|
||||
pthread_key_delete(_glfw.posix_tls.context);
|
||||
if (_glfw.posix_tls.allocated)
|
||||
pthread_key_delete(_glfw.posix_tls.context);
|
||||
}
|
||||
|
||||
void _glfwSetContextTLS(_GLFWwindow* context)
|
||||
|
|
|
@ -37,6 +37,7 @@
|
|||
//
|
||||
typedef struct _GLFWtlsPOSIX
|
||||
{
|
||||
GLFWbool allocated;
|
||||
pthread_key_t context;
|
||||
|
||||
} _GLFWtlsPOSIX;
|
||||
|
|
Loading…
Reference in New Issue
Block a user