GtkApplication: Fix two muxer-related memory leaks

Drop the ref on the action muxer in finalize, and also make sure
shutdown() tears down the muxer setup done in startup().

When GtkApplication adds itself to a muxer, it causes the muxer to take
a ref on the GtkApplication. This has to be undone in shutdown() to make
sure the GtkApplication doesn't end up holding a ref on itself.

https://bugzilla.gnome.org/show_bug.cgi?id=730383
This commit is contained in:
Kalev Lember 2014-05-19 13:19:11 +02:00
parent 8230299748
commit 750f6b9913

View File

@ -522,6 +522,8 @@ gtk_application_shutdown (GApplication *g_application)
gtk_application_impl_shutdown (application->priv->impl);
g_clear_object (&application->priv->impl);
gtk_action_muxer_remove (application->priv->muxer, "app");
/* Keep this section in sync with gtk_main() */
/* Try storing all clipboard data we have */
@ -767,6 +769,7 @@ gtk_application_finalize (GObject *object)
g_clear_object (&application->priv->app_menu);
g_clear_object (&application->priv->menubar);
g_clear_object (&application->priv->muxer);
accels_finalize (&application->priv->accels);