From: Emmanuele Bassi Date: Mon, 23 Apr 2018 09:57:07 +0000 (+0100) Subject: wayland: Allow a NULL inhibitors hash table X-Git-Tag: archive/raspbian/4.4.1+ds1-2+rpi1^2~18^2~22^2~417 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=fc57d3b5a33504a43b5e5877a69b193ebdb240eb;p=gtk4.git wayland: Allow a NULL inhibitors hash table The shortcuts inhibitors hash table is created when we create a GdkWaylandWindow implementation for a GdkWindow, and it's destroyed once we finalize the instance. The fake "root" window we create for the Wayland display does not have a backing native window, so the shortcuts inhibitors hash table is set to NULL; this causes a critical error message when calling g_hash_table_destroy() on it. The finalization of the root window happens when we close a display connection. We should use g_clear_pointer(), instead, as it's NULL safe. Without this change, the displayclose test fails, as all warnings are considered fatal. --- diff --git a/gdk/wayland/gdksurface-wayland.c b/gdk/wayland/gdksurface-wayland.c index e64cba366b..7823589938 100644 --- a/gdk/wayland/gdksurface-wayland.c +++ b/gdk/wayland/gdksurface-wayland.c @@ -914,8 +914,7 @@ gdk_surface_impl_wayland_finalize (GObject *object) g_clear_pointer (&impl->opaque_region, cairo_region_destroy); g_clear_pointer (&impl->input_region, cairo_region_destroy); g_clear_pointer (&impl->staged_updates_region, cairo_region_destroy); - - g_hash_table_destroy (impl->shortcuts_inhibitors); + g_clear_pointer (&impl->shortcuts_inhibitors, g_hash_table_unref); G_OBJECT_CLASS (_gdk_surface_impl_wayland_parent_class)->finalize (object); }