libpurple/image-store.c

changeset 35806
49018c6bf755
parent 35805
1a2cf8aef4a8
child 35830
fb32647ef2f3
--- a/libpurple/image-store.c	Thu Apr 10 00:43:24 2014 +0200
+++ b/libpurple/image-store.c	Thu Apr 10 01:23:40 2014 +0200
@@ -120,6 +120,12 @@
 	return G_SOURCE_REMOVE;
 }
 
+static void
+cancel_temporary(gpointer key, gpointer value, gpointer _unused)
+{
+	purple_timeout_remove(GPOINTER_TO_INT(key));
+}
+
 guint
 purple_image_store_add_temporary(PurpleImage *image)
 {
@@ -129,6 +135,7 @@
 	g_return_val_if_fail(PURPLE_IS_IMAGE(image), 0);
 
 	id = image_get_id(image);
+	/* XXX: add_temporary doesn't extend previous temporary call, sorry */
 	if (id > 0)
 		return id;
 
@@ -164,6 +171,7 @@
 	g_slist_free_full(perm_images, g_object_unref);
 	perm_images = NULL;
 
+	g_hash_table_foreach(temp_images, cancel_temporary, NULL);
 	g_hash_table_destroy(temp_images);
 	temp_images = NULL;
 

mercurial