backend: Clean up renderer after clutter backend

commit c4a73e7950 added
code to cleanup the renderer when the meta backend is
disposed. Unfortunately, this introduced a crash when
the window manager is replaced.

This is because cleaning up the renderer involves talking
to the X server over a display connection that's closed
two lines higher as part of the clutter_backend_destroy
call.

This commit fixes the crash by swapping their order.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1965>
This commit is contained in:
Ray Strode 2021-08-12 14:13:23 -04:00 committed by Marge Bot
parent ef8c428ef9
commit 2cb617e9e0

View File

@ -254,9 +254,9 @@ meta_backend_dispose (GObject *object)
g_clear_pointer (&priv->default_seat, clutter_seat_destroy); g_clear_pointer (&priv->default_seat, clutter_seat_destroy);
g_clear_pointer (&priv->stage, clutter_actor_destroy); g_clear_pointer (&priv->stage, clutter_actor_destroy);
g_clear_pointer (&priv->clutter_backend, clutter_backend_destroy);
g_clear_pointer (&priv->idle_manager, meta_idle_manager_free); g_clear_pointer (&priv->idle_manager, meta_idle_manager_free);
g_clear_object (&priv->renderer); g_clear_object (&priv->renderer);
g_clear_pointer (&priv->clutter_backend, clutter_backend_destroy);
g_clear_list (&priv->gpus, g_object_unref); g_clear_list (&priv->gpus, g_object_unref);
G_OBJECT_CLASS (meta_backend_parent_class)->dispose (object); G_OBJECT_CLASS (meta_backend_parent_class)->dispose (object);