From 60bf46d1336a77fdd89fdbf3f29f20b335f9d156 Mon Sep 17 00:00:00 2001 From: Jens Granseuer Date: Wed, 9 May 2007 19:48:03 +0000 Subject: [PATCH] fix memory leaks 2007-05-09 Jens Granseuer * gnome-theme-info.c: (gnome_theme_read_meta_theme): * gtkrc-utils.c: (gtkrc_find_named), (gtkrc_get_color_scheme): fix memory leaks * gnome-theme-test.c: (main): init g_thread svn path=/trunk/; revision=7589 --- capplets/common/ChangeLog | 8 ++++++++ capplets/common/gnome-theme-info.c | 19 ++++++++++++------- capplets/common/gnome-theme-test.c | 1 + capplets/common/gtkrc-utils.c | 4 ++-- 4 files changed, 23 insertions(+), 9 deletions(-) diff --git a/capplets/common/ChangeLog b/capplets/common/ChangeLog index d5d6d1bc9..eed0140c2 100644 --- a/capplets/common/ChangeLog +++ b/capplets/common/ChangeLog @@ -1,3 +1,11 @@ +2007-05-09 Jens Granseuer + + * gnome-theme-info.c: (gnome_theme_read_meta_theme): + * gtkrc-utils.c: (gtkrc_find_named), (gtkrc_get_color_scheme): fix + memory leaks + + * gnome-theme-test.c: (main): init g_thread + 2007-05-09 Jens Granseuer * gconf-property-editor.c: (gconf_peditor_new), diff --git a/capplets/common/gnome-theme-info.c b/capplets/common/gnome-theme-info.c index 8f4d5ed19..793c41377 100644 --- a/capplets/common/gnome-theme-info.c +++ b/capplets/common/gnome-theme-info.c @@ -308,6 +308,7 @@ gnome_theme_read_meta_theme (GnomeVFSURI *meta_theme_uri) GnomeDesktopItem *meta_theme_ditem; gchar *meta_theme_file; const gchar *str; + gchar *scheme; meta_theme_file = gnome_vfs_uri_to_string (meta_theme_uri, GNOME_VFS_URI_HIDE_NONE); meta_theme_ditem = gnome_desktop_item_new_from_uri (meta_theme_file, 0, NULL); @@ -361,17 +362,21 @@ gnome_theme_read_meta_theme (GnomeVFSURI *meta_theme_uri) gchar *gtkrc_file = gtkrc_find_named (meta_theme_info->gtk_theme_name); if (gtkrc_file) { - str = gtkrc_get_color_scheme (gtkrc_file); + scheme = gtkrc_get_color_scheme (gtkrc_file); g_free (gtkrc_file); } + else + scheme = NULL; } - if (str != NULL) + else + scheme = g_strdup (str); + + if (scheme != NULL) { - gchar *a; - meta_theme_info->gtk_color_scheme = g_strdup (str); - for (a = meta_theme_info->gtk_color_scheme; *a != '\0'; a++) - if (*a == ',') - *a = '\n'; + meta_theme_info->gtk_color_scheme = scheme; + for (; *scheme != '\0'; scheme++) + if (*scheme == ',') + *scheme = '\n'; } str = gnome_desktop_item_get_string (meta_theme_ditem, METACITY_THEME_KEY); diff --git a/capplets/common/gnome-theme-test.c b/capplets/common/gnome-theme-test.c index 71b1cd852..25d5fb203 100644 --- a/capplets/common/gnome-theme-test.c +++ b/capplets/common/gnome-theme-test.c @@ -13,6 +13,7 @@ main (int argc, char *argv[]) gboolean monitor_not_added = FALSE; GList *themes, *list; + g_thread_init (NULL); gtk_init (&argc, &argv); gnome_vfs_init (); gnome_theme_init (&monitor_not_added); diff --git a/capplets/common/gtkrc-utils.c b/capplets/common/gtkrc-utils.c index c776b86ef..296fbba27 100644 --- a/capplets/common/gtkrc-utils.c +++ b/capplets/common/gtkrc-utils.c @@ -21,8 +21,7 @@ gtkrc_find_named (const gchar *name) */ gchar *path = NULL; const gchar *home_dir; - gchar *subpath; - subpath = g_strdup ("gtk-2.0" G_DIR_SEPARATOR_S "gtkrc"); + const gchar *subpath = "gtk-2.0" G_DIR_SEPARATOR_S "gtkrc"; /* First look in the users home directory */ @@ -190,6 +189,7 @@ gtkrc_get_color_scheme (gchar *filename) } } } + g_scanner_destroy (scanner); return result; }