[gtk/gbsneto/fix-wayland-export-handle] wayland/surface: Only call destroy func when available
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/gbsneto/fix-wayland-export-handle] wayland/surface: Only call destroy func when available
- Date: Tue, 1 Oct 2019 14:58:13 +0000 (UTC)
commit 655c9dd526912cf551865664a03576abdaa9a76a
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date: Tue Oct 1 11:54:28 2019 -0300
wayland/surface: Only call destroy func when available
When calling gdk_wayland_surface_export_handle(), if we pass
some 'user_data' but no 'destroy_func', GTK4 crashes. That's
because in xdg_exported_handle() we are unconditionally calling
destroy_func -- even when it's NULL.
Fix that by checking if there's a destroy function before calling
it.
Fixes https://gitlab.gnome.org/GNOME/gtk/issues/2179
gdk/wayland/gdksurface-wayland.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
---
diff --git a/gdk/wayland/gdksurface-wayland.c b/gdk/wayland/gdksurface-wayland.c
index 0a8043b16e..aed4489c7c 100644
--- a/gdk/wayland/gdksurface-wayland.c
+++ b/gdk/wayland/gdksurface-wayland.c
@@ -4063,8 +4063,11 @@ xdg_exported_handle (void *data,
GdkWaylandSurface *impl = GDK_WAYLAND_SURFACE (surface);
impl->exported.callback (surface, handle, impl->exported.user_data);
- g_clear_pointer (&impl->exported.user_data,
- impl->exported.destroy_func);
+ if (impl->exported.destroy_func)
+ {
+ g_clear_pointer (&impl->exported.user_data,
+ impl->exported.destroy_func);
+ }
}
static const struct zxdg_exported_v1_listener xdg_exported_listener = {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]