diff pidgin/gtksmiley.c @ 22889:019052a807a3

Introduce API for GtkIMHtmlSmiley. Use this to prevent leaking remote custom emoticons.
author Sadrul Habib Chowdhury <imadil@gmail.com>
date Tue, 18 Mar 2008 00:47:52 +0000
parents 09f426ca9ca7
children b70b4108799e
line wrap: on
line diff
--- a/pidgin/gtksmiley.c	Fri Mar 14 23:41:03 2008 +0000
+++ b/pidgin/gtksmiley.c	Tue Mar 18 00:47:52 2008 +0000
@@ -91,11 +91,9 @@
 
 	filename = g_build_filename(purple_smileys_get_storing_dir(),file, NULL);
 
-	gtksmiley = g_new0(GtkIMHtmlSmiley,1);
-	gtksmiley->smile = g_strdup(purple_smiley_get_shortcut(smiley));
-	gtksmiley->hidden = FALSE;
-	gtksmiley->file = filename;
-	gtksmiley->flags = GTK_IMHTML_SMILEY_CUSTOM;
+	gtksmiley = gtk_imhtml_smiley_create(filename, purple_smiley_get_shortcut(smiley),
+			FALSE, GTK_IMHTML_SMILEY_CUSTOM);
+	g_free(filename);
 
 	return gtksmiley;
 }
@@ -108,14 +106,6 @@
 	add_gtkimhtml_to_list(gtksmiley);
 }
 
-static void destroy_gtksmiley(GtkIMHtmlSmiley *gtksmiley)
-{
-	purple_debug_info("gtksmiley", "destroying %s\n", gtksmiley->smile);
-	g_free(gtksmiley->smile);
-	g_free(gtksmiley->file);
-	g_free(gtksmiley);
-}
-
 void pidgin_smiley_del_from_list(PurpleSmiley *smiley)
 {
 	GSList *list = NULL;
@@ -132,7 +122,7 @@
 		if (strcmp(gtksmiley->smile, purple_smiley_get_shortcut(smiley)))
 			continue;
 
-		destroy_gtksmiley(gtksmiley);
+		gtk_imhtml_smiley_destroy(gtksmiley);
 		break;
 	}
 
@@ -169,7 +159,7 @@
 
 	for (; list; list = g_slist_delete_link(list, list)) {
 		gtksmiley = (GtkIMHtmlSmiley*)list->data;
-		destroy_gtksmiley(gtksmiley);
+		gtk_imhtml_smiley_destroy(gtksmiley);
 	}
 
 	gtk_smileys = NULL;