mirror of
https://github.com/glfw/glfw.git
synced 2024-11-12 17:51:48 +00: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;
|
return GLFW_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_glfw.posix_tls.allocated = GLFW_TRUE;
|
||||||
return GLFW_TRUE;
|
return GLFW_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void _glfwDestroyContextTLS(void)
|
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)
|
void _glfwSetContextTLS(_GLFWwindow* context)
|
||||||
|
@ -37,6 +37,7 @@
|
|||||||
//
|
//
|
||||||
typedef struct _GLFWtlsPOSIX
|
typedef struct _GLFWtlsPOSIX
|
||||||
{
|
{
|
||||||
|
GLFWbool allocated;
|
||||||
pthread_key_t context;
|
pthread_key_t context;
|
||||||
|
|
||||||
} _GLFWtlsPOSIX;
|
} _GLFWtlsPOSIX;
|
||||||
|
Loading…
Reference in New Issue
Block a user