From 327c12b5397641e4aaf56b968f9af3c53fe15839 Mon Sep 17 00:00:00 2001 From: Michael Webster Date: Tue, 17 Mar 2015 20:20:16 -0400 Subject: [PATCH 1/2] gs-window-x11.c: Fix some leaks, readability --- src/gs-window-x11.c | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/src/gs-window-x11.c b/src/gs-window-x11.c index dcdd90a..2716a2f 100644 --- a/src/gs-window-x11.c +++ b/src/gs-window-x11.c @@ -2115,9 +2115,17 @@ update_clock (GSWindow *window) char *markup; if (window->priv->away_message != NULL && g_strcmp0(window->priv->away_message, "") != 0) { - markup = g_strdup_printf ("%s\n\n%s\n ~ %s", gnome_wall_clock_get_clock (window->priv->clock_tracker), g_markup_escape_text(window->priv->away_message, -1), get_user_display_name()); + gchar *user_name = get_user_display_name (); + markup = g_strdup_printf ("%s\n\n%s" + "\n ~ %s", + gnome_wall_clock_get_clock (window->priv->clock_tracker), + window->priv->away_message, user_name); + g_free (user_name); } else { - markup = g_strdup_printf ("%s\n\n%s", gnome_wall_clock_get_clock (window->priv->clock_tracker), window->priv->font_message, g_markup_escape_text(window->priv->default_message, -1)); + markup = g_strdup_printf ("%s\n\n%s", + gnome_wall_clock_get_clock (window->priv->clock_tracker), + window->priv->font_message, + window->priv->default_message); } gtk_label_set_markup (GTK_LABEL (window->priv->clock), markup); @@ -2161,7 +2169,7 @@ gs_window_set_away_message (GSWindow *window, g_free (window->priv->away_message); if (message) { - window->priv->away_message = g_strdup (message); + window->priv->away_message = g_markup_escape_text (message, -1); } else { window->priv->away_message = NULL; } @@ -2174,6 +2182,7 @@ settings_changed_cb (GSettings *settings, const gchar *key, gpointer user_data) { GSWindow *window = user_data; + g_clear_pointer (&window->priv->font_message, g_free); window->priv->font_message = g_settings_get_string (window->priv->settings, "font-message"); } @@ -2190,6 +2199,8 @@ gs_window_init (GSWindow *window) window->priv->last_x = -1; window->priv->last_y = -1; + window->priv->settings = g_settings_new ("org.cinnamon.desktop.screensaver"); + gtk_window_set_decorated (GTK_WINDOW (window), FALSE); gtk_window_set_skip_taskbar_hint (GTK_WINDOW (window), TRUE); @@ -2235,7 +2246,9 @@ gs_window_init (GSWindow *window) gtk_widget_set_size_request(window->priv->vbox,450, -1); // Default message - window->priv->default_message = g_settings_get_string(g_settings_new ("org.cinnamon.desktop.screensaver"), "default-message"); + gchar *unesc = g_settings_get_string(window->priv->settings, "default-message"); + window->priv->default_message = g_markup_escape_text (unesc, -1); + g_free (unesc); // Clock -- need to find a way to make it appear on the bottom-left side of the background without shifting the position of the main dialog box window->priv->clock = gtk_label_new (NULL); @@ -2259,7 +2272,6 @@ gs_window_init (GSWindow *window) gtk_widget_set_hexpand (grid, TRUE); gtk_widget_set_vexpand (grid, TRUE); - window->priv->settings = g_settings_new ("org.cinnamon.desktop.screensaver"); window->priv->font_message = g_settings_get_string (window->priv->settings, "font-message"); g_signal_connect (window->priv->settings, "changed", G_CALLBACK (settings_changed_cb), window); @@ -2299,6 +2311,7 @@ gs_window_finalize (GObject *object) g_free (window->priv->away_message); g_free (window->priv->logout_command); g_free (window->priv->keyboard_command); + g_free (window->priv->font_message); if (window->priv->clock_tracker) { g_object_unref (window->priv->clock_tracker); @@ -2326,6 +2339,8 @@ gs_window_finalize (GObject *object) cairo_surface_destroy (window->priv->background_surface); } + g_clear_object (&window->priv->settings); + G_OBJECT_CLASS (gs_window_parent_class)->finalize (object); } -- 2.1.0