42 lines
1.1 KiB
C
42 lines
1.1 KiB
C
$NetBSD: patch-src_mesa_main_context.c,v 1.3 2015/09/26 08:45:02 tnn Exp $
|
|
|
|
* Fix exit time segfault of qt5 application with modular xorg
|
|
|
|
--- src/mesa/main/context.c.orig 2015-09-11 17:41:47.000000000 +0000
|
|
+++ src/mesa/main/context.c
|
|
@@ -350,11 +350,14 @@ mtx_t OneTimeLock = _MTX_INITIALIZER_NP;
|
|
* Calls all the various one-time-fini functions in Mesa
|
|
*/
|
|
|
|
-static void
|
|
+static GLbitfield api_init_mask = 0x0;
|
|
+static void __attribute__((__destructor__))
|
|
one_time_fini(void)
|
|
{
|
|
- _mesa_destroy_shader_compiler();
|
|
- _mesa_locale_fini();
|
|
+ if (api_init_mask) {
|
|
+ _mesa_destroy_shader_compiler();
|
|
+ _mesa_locale_fini();
|
|
+ }
|
|
}
|
|
|
|
/**
|
|
@@ -369,7 +372,6 @@ one_time_fini(void)
|
|
static void
|
|
one_time_init( struct gl_context *ctx )
|
|
{
|
|
- static GLbitfield api_init_mask = 0x0;
|
|
|
|
mtx_lock(&OneTimeLock);
|
|
|
|
@@ -394,8 +396,6 @@ one_time_init( struct gl_context *ctx )
|
|
_mesa_ubyte_to_float_color_tab[i] = (float) i / 255.0F;
|
|
}
|
|
|
|
- atexit(one_time_fini);
|
|
-
|
|
#if defined(DEBUG) && defined(__DATE__) && defined(__TIME__)
|
|
if (MESA_VERBOSE != 0) {
|
|
_mesa_debug(ctx, "Mesa %s DEBUG build %s %s\n",
|