]> Pileus Git - ~andy/gtk/commitdiff
gtkapplication: fix some crashing "leak fixes"
authorRyan Lortie <desrt@desrt.ca>
Thu, 20 Sep 2012 18:22:52 +0000 (14:22 -0400)
committerRyan Lortie <desrt@desrt.ca>
Thu, 20 Sep 2012 18:22:52 +0000 (14:22 -0400)
https://bugzilla.gnome.org/show_bug.cgi?id=684258

examples/bloatpad.c
gtk/gtkapplication.c

index fc8e263e1c006aac961778812c51a95ca44a01b1..8d0da4ece1254c43e555db63ac8a7dffa76d1da9 100644 (file)
@@ -366,6 +366,7 @@ bloat_pad_startup (GApplication *application)
                                "</interface>", -1, NULL);
   gtk_application_set_app_menu (GTK_APPLICATION (application), G_MENU_MODEL (gtk_builder_get_object (builder, "app-menu")));
   gtk_application_set_menubar (GTK_APPLICATION (application), G_MENU_MODEL (gtk_builder_get_object (builder, "menubar")));
+  //gtk_application_set_menubar (GTK_APPLICATION (application), G_MENU_MODEL (gtk_builder_get_object (builder, "app-menu")));
   bloatpad->time = G_MENU (gtk_builder_get_object (builder, "time-menu"));
   g_object_unref (builder);
 }
index 907b3fe7e1bab2905b9048f3b5486f7cbcfd1d6f..334cb9fb43e5d15b1c717bc6f8fc445e74fa750d 100644 (file)
@@ -219,7 +219,6 @@ static void
 gtk_application_set_app_menu_x11 (GtkApplication *application,
                                   GMenuModel     *app_menu)
 {
-  g_free (application->priv->app_menu_path);
   gtk_application_x11_publish_menu (application, "appmenu", app_menu,
                                     &application->priv->app_menu_id,
                                     &application->priv->app_menu_path);
@@ -229,7 +228,6 @@ static void
 gtk_application_set_menubar_x11 (GtkApplication *application,
                                  GMenuModel     *menubar)
 {
-  g_free (application->priv->menubar_path);
   gtk_application_x11_publish_menu (application, "menubar", menubar,
                                     &application->priv->menubar_id,
                                     &application->priv->menubar_path);
@@ -294,13 +292,13 @@ gtk_application_shutdown_x11 (GtkApplication *application)
   application->priv->session_bus = NULL;
   application->priv->object_path = NULL;
 
+  gtk_application_set_app_menu_x11 (application, NULL);
+  gtk_application_set_menubar_x11 (application, NULL);
+
   g_clear_object (&application->priv->sm_proxy);
   g_clear_object (&application->priv->client_proxy);
   g_free (application->priv->app_id);
   g_free (application->priv->client_path);
-
-  g_free (application->priv->app_menu_path);
-  g_free (application->priv->menubar_path);
 }
 
 const gchar *