mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-09-19 13:30:02 +00:00
Merge branch 'wip/smcv/issue6995' into 'main'
gdkgltexture: Avoid use-after-free when switching GdkGLContext Closes #6995 See merge request GNOME/gtk!7703
This commit is contained in:
commit
97a2c3a656
@ -101,6 +101,10 @@ gdk_gl_texture_invoke_callback (gpointer data)
|
|||||||
context = gdk_display_get_gl_context (gdk_gl_context_get_display (invoke->self->context));
|
context = gdk_display_get_gl_context (gdk_gl_context_get_display (invoke->self->context));
|
||||||
|
|
||||||
previous = gdk_gl_context_get_current ();
|
previous = gdk_gl_context_get_current ();
|
||||||
|
|
||||||
|
if (previous)
|
||||||
|
g_object_ref (previous);
|
||||||
|
|
||||||
gdk_gl_context_make_current (context);
|
gdk_gl_context_make_current (context);
|
||||||
|
|
||||||
if (invoke->self->sync && context != invoke->self->context)
|
if (invoke->self->sync && context != invoke->self->context)
|
||||||
@ -113,9 +117,14 @@ gdk_gl_texture_invoke_callback (gpointer data)
|
|||||||
g_atomic_int_set (&invoke->spinlock, 1);
|
g_atomic_int_set (&invoke->spinlock, 1);
|
||||||
|
|
||||||
if (previous)
|
if (previous)
|
||||||
gdk_gl_context_make_current (previous);
|
{
|
||||||
|
gdk_gl_context_make_current (previous);
|
||||||
|
g_object_unref (previous);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
gdk_gl_context_clear_current ();
|
{
|
||||||
|
gdk_gl_context_clear_current ();
|
||||||
|
}
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user