[Mesa-dev] [PATCH] egl: initialise dummy_thread via _eglInitThreadInfo
Ilia Mirkin
imirkin at alum.mit.edu
Sat Apr 29 13:51:50 UTC 2017
On Tue, Apr 25, 2017 at 12:07 PM, Emil Velikov <emil.l.velikov at gmail.com> wrote:
> From: Emil Velikov <emil.velikov at collabora.com>
>
> Considering we cannot make dummy_thread a constant we might as well,
> initialise by the same function that handles the actual thread info.
>
> This way we don't need to worry about mismatch between the initialiser
> and initialising function.
>
> Signed-off-by: Emil Velikov <emil.velikov at collabora.com>
> ---
> src/egl/main/eglcurrent.c | 13 ++++---------
> 1 file changed, 4 insertions(+), 9 deletions(-)
>
> diff --git a/src/egl/main/eglcurrent.c b/src/egl/main/eglcurrent.c
> index eae7bdcea15..26f42761e26 100644
> --- a/src/egl/main/eglcurrent.c
> +++ b/src/egl/main/eglcurrent.c
> @@ -37,12 +37,8 @@
> #include "eglcurrent.h"
> #include "eglglobals.h"
>
> -/* This should be kept in sync with _eglInitThreadInfo() */
> -#define _EGL_THREAD_INFO_INITIALIZER \
> - { EGL_SUCCESS, NULL, EGL_OPENGL_ES_API, NULL, NULL, NULL }
> -
> /* a fallback thread info to guarantee that every thread always has one */
> -static _EGLThreadInfo dummy_thread = _EGL_THREAD_INFO_INITIALIZER;
> +static _EGLThreadInfo dummy_thread;
Are statics initialized to 0? I didn't think they were... I think you
need a "= {};" here. Did you test this by forcing allocation failures?
> static mtx_t _egl_TSDMutex = _MTX_INITIALIZER_NP;
> static EGLBoolean _egl_TSDInitialized;
> static tss_t _egl_TSD;
> @@ -109,7 +105,6 @@ static inline EGLBoolean _eglInitTSD(void (*dtor)(_EGLThreadInfo *))
> static void
> _eglInitThreadInfo(_EGLThreadInfo *t)
> {
> - memset(t, 0, sizeof(*t));
> t->LastError = EGL_SUCCESS;
> /* default, per EGL spec */
> t->CurrentAPI = EGL_OPENGL_ES_API;
> @@ -123,10 +118,10 @@ static _EGLThreadInfo *
> _eglCreateThreadInfo(void)
> {
> _EGLThreadInfo *t = calloc(1, sizeof(_EGLThreadInfo));
> - if (t)
> - _eglInitThreadInfo(t);
> - else
> + if (!t)
> t = &dummy_thread;
> +
> + _eglInitThreadInfo(t);
> return t;
> }
>
> --
> 2.12.2
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list