From 0049be4e58ef33749d9ddddb58357c5c93125d5d Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 15 Jan 2016 17:36:13 -0500 Subject: [PATCH] application: Protect against double shutdown It is not something that can happen normally. But if it does, we shouldn't crash. https://bugzilla.gnome.org/show_bug.cgi?id=760680 --- gtk/gtkapplication.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/gtk/gtkapplication.c b/gtk/gtkapplication.c index b698951013..77a4e1c0e9 100644 --- a/gtk/gtkapplication.c +++ b/gtk/gtkapplication.c @@ -620,8 +620,7 @@ gtk_application_startup (GApplication *g_application) { GtkApplication *application = GTK_APPLICATION (g_application); - G_APPLICATION_CLASS (gtk_application_parent_class) - ->startup (g_application); + G_APPLICATION_CLASS (gtk_application_parent_class)->startup (g_application); gtk_action_muxer_insert (application->priv->muxer, "app", G_ACTION_GROUP (application)); @@ -638,6 +637,9 @@ gtk_application_shutdown (GApplication *g_application) { GtkApplication *application = GTK_APPLICATION (g_application); + if (application->priv->impl == NULL) + return; + gtk_application_impl_shutdown (application->priv->impl); g_clear_object (&application->priv->impl); @@ -651,8 +653,7 @@ gtk_application_shutdown (GApplication *g_application) /* Synchronize the recent manager singleton */ _gtk_recent_manager_sync (); - G_APPLICATION_CLASS (gtk_application_parent_class) - ->shutdown (g_application); + G_APPLICATION_CLASS (gtk_application_parent_class)->shutdown (g_application); } static gboolean