diff --git a/capplets/appearance/ChangeLog b/capplets/appearance/ChangeLog index 54a20ba6a..f789c8775 100644 --- a/capplets/appearance/ChangeLog +++ b/capplets/appearance/ChangeLog @@ -1,3 +1,8 @@ +2007-07-29 Thomas Wood + + * appearance-style.c: (cursor_theme_sort_func), (prepare_list), + (style_init): Prevent some memory leaks + 2007-07-29 Thomas Wood * theme-installer.c: (file_theme_type), (gnome_theme_install_real): diff --git a/capplets/appearance/appearance-style.c b/capplets/appearance/appearance-style.c index 263fc53fd..bc7ca3ae1 100644 --- a/capplets/appearance/appearance-style.c +++ b/capplets/appearance/appearance-style.c @@ -135,9 +135,10 @@ cursor_theme_sort_func (GtkTreeModel *model, GtkTreeIter *b, gpointer user_data) { - const gchar *a_label = NULL; - const gchar *b_label = NULL; + gchar *a_label = NULL; + gchar *b_label = NULL; const gchar *default_label; + gint result; gtk_tree_model_get (model, a, COL_LABEL, &a_label, -1); gtk_tree_model_get (model, b, COL_LABEL, &b_label, -1); @@ -145,11 +146,16 @@ cursor_theme_sort_func (GtkTreeModel *model, default_label = _("Default Pointer"); if (!strcmp (a_label, default_label)) - return -1; + result = -1; else if (!strcmp (b_label, default_label)) - return 1; + result = 1; else - return strcmp (a_label, b_label); + result = strcmp (a_label, b_label); + + g_free (a_label); + g_free (b_label); + + return result; } static void @@ -856,6 +862,7 @@ style_init (AppearanceData *data) GtkSettings *settings; GtkWidget *w; GtkAdjustment *adjustment; + gchar *label; data->gtk_theme_icon = gdk_pixbuf_new_from_file (GNOMECC_PIXMAP_DIR "/gtk-theme-thumbnailing.png", NULL); data->window_theme_icon = gdk_pixbuf_new_from_file (GNOMECC_PIXMAP_DIR "/window-theme-thumbnailing.png", NULL); @@ -889,9 +896,14 @@ style_init (AppearanceData *data) g_object_set (G_OBJECT (adjustment), "page-size", 0.0, NULL); w = glade_xml_get_widget (data->xml, "cursor_size_small_label"); - gtk_label_set_markup (GTK_LABEL (w), g_strdup_printf ("%s", gtk_label_get_text (GTK_LABEL (w)))); + label = g_strdup_printf ("%s", gtk_label_get_text (GTK_LABEL (w))); + gtk_label_set_markup (GTK_LABEL (w), label); + g_free (label); + w = glade_xml_get_widget (data->xml, "cursor_size_large_label"); - gtk_label_set_markup (GTK_LABEL (w), g_strdup_printf ("%s", gtk_label_get_text (GTK_LABEL (w)))); + label = g_strdup_printf ("%s", gtk_label_get_text (GTK_LABEL (w))); + gtk_label_set_markup (GTK_LABEL (w), label); + g_free (label); #else w = glade_xml_get_widget (data->xml, "cursor_size_hbox"); gtk_widget_set_no_show_all (w, TRUE); diff --git a/capplets/common/ChangeLog b/capplets/common/ChangeLog index d6dfe3a16..c23d39bf2 100644 --- a/capplets/common/ChangeLog +++ b/capplets/common/ChangeLog @@ -1,3 +1,10 @@ +2007-07-29 Thomas Wood + + * gnome-theme-apply.c: (gnome_meta_theme_set): + * gtkrc-utils.c: (gtkrc_get_details), (gtkrc_get_color_scheme): + + Prevent some memory leaks + 2007-07-28 Denis Washington * gnome-theme-info.h: diff --git a/capplets/common/gnome-theme-apply.c b/capplets/common/gnome-theme-apply.c index b7d20340e..e66f7d60a 100644 --- a/capplets/common/gnome-theme-apply.c +++ b/capplets/common/gnome-theme-apply.c @@ -75,6 +75,7 @@ gnome_meta_theme_set (GnomeThemeMetaInfo *meta_theme_info) { gconf_client_set_string (client, COLOR_SCHEME_KEY, newval, NULL); } + g_free (gtkcols); } g_free (old_key); diff --git a/capplets/common/gtkrc-utils.c b/capplets/common/gtkrc-utils.c index 9ddb49080..844778241 100644 --- a/capplets/common/gtkrc-utils.c +++ b/capplets/common/gtkrc-utils.c @@ -154,6 +154,9 @@ gtkrc_get_details (gchar *filename, GSList **engines, GSList **symbolic_colors) } } + g_slist_foreach (read_files, (GFunc) g_free, NULL); + g_slist_free (read_files); + g_scanner_destroy (scanner); } @@ -209,6 +212,10 @@ gtkrc_get_color_scheme (gchar *filename) } } } + + g_slist_foreach (read_files, (GFunc) g_free, NULL); + g_slist_free (read_files); + g_scanner_destroy (scanner); return result; }