From c3f446a95a1799cda67f3f0cd1ee6e0c3fb0cb61 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Mon, 5 Jun 2023 17:18:10 -0400 Subject: [PATCH] wayland: Don't leak all globals --- gdk/wayland/gdkdisplay-wayland.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gdk/wayland/gdkdisplay-wayland.c b/gdk/wayland/gdkdisplay-wayland.c index 941a6d00f4..617d67e556 100644 --- a/gdk/wayland/gdkdisplay-wayland.c +++ b/gdk/wayland/gdkdisplay-wayland.c @@ -698,6 +698,32 @@ gdk_wayland_display_dispose (GObject *object) g_list_free_full (display_wayland->on_has_globals_closures, g_free); + g_clear_pointer (&display_wayland->compositor, wl_compositor_destroy); + g_clear_pointer (&display_wayland->shm, wl_shm_destroy); + g_clear_pointer (&display_wayland->xdg_wm_base, xdg_wm_base_destroy); + g_clear_pointer (&display_wayland->zxdg_shell_v6, zxdg_shell_v6_destroy); + g_clear_pointer (&display_wayland->gtk_shell, gtk_shell1_destroy); + g_clear_pointer (&display_wayland->data_device_manager, wl_data_device_manager_destroy); + g_clear_pointer (&display_wayland->subcompositor, wl_subcompositor_destroy); + g_clear_pointer (&display_wayland->pointer_gestures, zwp_pointer_gestures_v1_destroy); + g_clear_pointer (&display_wayland->primary_selection_manager, zwp_primary_selection_device_manager_v1_destroy); + g_clear_pointer (&display_wayland->tablet_manager, zwp_tablet_manager_v2_destroy); + g_clear_pointer (&display_wayland->xdg_exporter, zxdg_exporter_v1_destroy); + g_clear_pointer (&display_wayland->xdg_exporter_v2, zxdg_exporter_v2_destroy); + g_clear_pointer (&display_wayland->xdg_importer, zxdg_importer_v1_destroy); + g_clear_pointer (&display_wayland->xdg_importer_v2, zxdg_importer_v2_destroy); + g_clear_pointer (&display_wayland->keyboard_shortcuts_inhibit, zwp_keyboard_shortcuts_inhibit_manager_v1_destroy); + g_clear_pointer (&display_wayland->server_decoration_manager, org_kde_kwin_server_decoration_manager_destroy); + g_clear_pointer (&display_wayland->xdg_output_manager, zxdg_output_manager_v1_destroy); + g_clear_pointer (&display_wayland->idle_inhibit_manager, zwp_idle_inhibit_manager_v1_destroy); + g_clear_pointer (&display_wayland->xdg_activation, xdg_activation_v1_destroy); + g_clear_pointer (&display_wayland->fractional_scale, wp_fractional_scale_manager_v1_destroy); + g_clear_pointer (&display_wayland->viewporter, wp_viewporter_destroy); + + g_clear_pointer (&display_wayland->wl_registry, wl_registry_destroy); + + g_clear_pointer (&display_wayland->wl_display, wl_display_disconnect); + G_OBJECT_CLASS (gdk_wayland_display_parent_class)->dispose (object); } -- 2.30.2