Mercurial > pidgin
changeset 27798:c91832e94473
Clarify load_smiley_theme a little. Refs #9822.
This wasn't actually leaking, the theme was either in smiley_themes
already or was added there, but I can see why the analysis tool was
confused.
author | Paul Aurich <paul@darkrain42.org> |
---|---|
date | Sun, 02 Aug 2009 04:33:26 +0000 |
parents | 0a056130718e |
children | da33da2e1a1e |
files | pidgin/gtkthemes.c |
diffstat | 1 files changed, 8 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/pidgin/gtkthemes.c Sun Aug 02 04:10:32 2009 +0000 +++ b/pidgin/gtkthemes.c Sun Aug 02 04:33:26 2009 +0000 @@ -229,7 +229,6 @@ struct smiley_list *list = NULL; GSList *lst = smiley_themes; char *dirname; - gboolean new_theme = FALSE; if (!f) return; @@ -243,16 +242,18 @@ lst = lst->next; } - if (!theme) { - new_theme = TRUE; - theme = g_new0(struct smiley_theme, 1); - theme->path = g_strdup(file); - } else if (theme == current_smiley_theme) { + if (theme == current_smiley_theme) { /* Don't reload the theme if it is already loaded */ fclose(f); return; } + if (theme == NULL) { + theme = g_new0(struct smiley_theme, 1); + theme->path = g_strdup(file); + smiley_themes = g_slist_prepend(smiley_themes, theme); + } + dirname = g_path_get_dirname(file); while (!feof(f)) { @@ -341,14 +342,11 @@ if (!theme->name || !theme->desc || !theme->author) { purple_debug_error("gtkthemes", "Invalid file format, not loading smiley theme from '%s'\n", file); + smiley_themes = g_slist_remove(smiley_themes, theme); pidgin_themes_destroy_smiley_theme(theme); return; } - if (new_theme) { - smiley_themes = g_slist_prepend(smiley_themes, theme); - } - if (load) { GList *cnv;