# HG changeset patch # User Sadrul Habib Chowdhury # Date 1203908823 0 # Node ID d1bcb54920f844134e07bb5a1941f9a12be361e4 # Parent 2ab289f312d09317a035d6f0785f3474f4539aac Fix a leak, and correct the docs. diff -r 2ab289f312d0 -r d1bcb54920f8 libpurple/smiley.c --- a/libpurple/smiley.c Mon Feb 25 02:43:06 2008 +0000 +++ b/libpurple/smiley.c Mon Feb 25 03:07:03 2008 +0000 @@ -730,12 +730,9 @@ static void add_smiley_to_list(gpointer key, gpointer value, gpointer user_data) { - GList** preturninglist = (GList**)user_data; - GList *returninglist = *preturninglist; + GList** returninglist = (GList**)user_data; - returninglist = g_list_append(returninglist, value); - - *preturninglist = returninglist; + *returninglist = g_list_append(*returninglist, value); } GList * diff -r 2ab289f312d0 -r d1bcb54920f8 libpurple/smiley.h --- a/libpurple/smiley.h Mon Feb 25 02:43:06 2008 +0000 +++ b/libpurple/smiley.h Mon Feb 25 03:07:03 2008 +0000 @@ -210,9 +210,9 @@ /*@{*/ /** - * Returns a list of all custom smileys. + * Returns a list of all custom smileys. The caller should free the list. * - * @constreturn A list of all custom smileys. + * @return A list of all custom smileys. */ GList * purple_smileys_get_all(void); diff -r 2ab289f312d0 -r d1bcb54920f8 pidgin/gtksmiley.c --- a/pidgin/gtksmiley.c Mon Feb 25 02:43:06 2008 +0000 +++ b/pidgin/gtksmiley.c Mon Feb 25 03:07:03 2008 +0000 @@ -80,6 +80,7 @@ purple_debug_info("gtksmiley", "adding %s to gtk_smileys\n", gtksmiley->smile); } +/* Perhaps this should be in gtkimhtml.c instead. -- sad */ static GtkIMHtmlSmiley *smiley_purple_to_gtkimhtml(PurpleSmiley *smiley) { GtkIMHtmlSmiley *gtksmiley; @@ -141,16 +142,16 @@ void pidgin_smileys_init(void) { - GList *purple_smileys; + GList *smileys; PurpleSmiley *smiley; if (gtk_smileys != NULL) return; - purple_smileys = purple_smileys_get_all(); + smileys = purple_smileys_get_all(); - for (; purple_smileys; purple_smileys = purple_smileys->next) { - smiley = (PurpleSmiley*)purple_smileys->data; + for (; smileys; smileys = g_list_delete_link(smileys, smileys)) { + smiley = (PurpleSmiley*)smileys->data; pidgin_smiley_add_to_list(smiley); } @@ -432,7 +433,8 @@ gtk_list_store_clear(dialog->model); - for(list = purple_smileys_get_all(); list != NULL; list = list->next) { + for(list = purple_smileys_get_all(); list != NULL; + list = g_list_delete_link(list, list)) { emoticon = (PurpleSmiley*)list->data; store_smiley_add(emoticon);