mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 09:38:07 +02:00
Need to include glthread.h in glapi.h, not glapi.c so that GET_CURRENT_CONTEXT
is properly defined. Fixes long-standing, but unnoticed thread safety failure. Also, updated comments.
This commit is contained in:
parent
30655c211c
commit
e660690985
2 changed files with 15 additions and 16 deletions
|
|
@ -54,7 +54,6 @@
|
|||
#include "glapi.h"
|
||||
#include "glapioffsets.h"
|
||||
#include "glapitable.h"
|
||||
#include "glthread.h"
|
||||
|
||||
/***** BEGIN NO-OP DISPATCH *****/
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
/*
|
||||
* Mesa 3-D graphics library
|
||||
* Version: 6.3
|
||||
* Version: 6.5
|
||||
*
|
||||
* Copyright (C) 1999-2004 Brian Paul All Rights Reserved.
|
||||
* Copyright (C) 1999-2006 Brian Paul All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
|
|
@ -47,9 +47,12 @@
|
|||
|
||||
#include "GL/gl.h"
|
||||
#include "glapitable.h"
|
||||
#include "glthread.h"
|
||||
|
||||
|
||||
typedef void (*_glapi_warning_func)(void *ctx, const char *str, ...);
|
||||
|
||||
|
||||
#if defined(USE_MGL_NAMESPACE)
|
||||
#define _glapi_set_dispatch _mglapi_set_dispatch
|
||||
#define _glapi_get_dispatch _mglapi_get_dispatch
|
||||
|
|
@ -59,6 +62,11 @@ typedef void (*_glapi_warning_func)(void *ctx, const char *str, ...);
|
|||
#define _glapi_Dispatch _mglapi_Dispatch
|
||||
#endif
|
||||
|
||||
|
||||
/**
|
||||
** Define the GET_CURRENT_CONTEXT() macro.
|
||||
** \param C local variable which will hold the current context.
|
||||
**/
|
||||
#if defined (GLX_USE_TLS)
|
||||
|
||||
const extern void *_glapi_Context;
|
||||
|
|
@ -74,19 +82,6 @@ extern __thread void * _glapi_tls_Context
|
|||
extern void *_glapi_Context;
|
||||
extern struct _glapi_table *_glapi_Dispatch;
|
||||
|
||||
/**
|
||||
* Macro for declaration and fetching the current context.
|
||||
*
|
||||
* \param C local variable which will hold the current context.
|
||||
*
|
||||
* It should be used in the variable declaration area of a function:
|
||||
* \code
|
||||
* ...
|
||||
* {
|
||||
* GET_CURRENT_CONTEXT(ctx);
|
||||
* ...
|
||||
* \endcode
|
||||
*/
|
||||
# ifdef THREADS
|
||||
# define GET_CURRENT_CONTEXT(C) GLcontext *C = (GLcontext *) (_glapi_Context ? _glapi_Context : _glapi_get_context())
|
||||
# else
|
||||
|
|
@ -95,6 +90,11 @@ extern struct _glapi_table *_glapi_Dispatch;
|
|||
|
||||
#endif /* defined (GLX_USE_TLS) */
|
||||
|
||||
|
||||
/**
|
||||
** GL API public functions
|
||||
**/
|
||||
|
||||
extern void
|
||||
_glapi_noop_enable_warnings(GLboolean enable);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue