libpurple/protocols/msn/switchboard.c

changeset 35827
c7c855c36c9b
parent 35499
c4c5e0a670b1
child 36091
bb03db248026
--- a/libpurple/protocols/msn/switchboard.c	Fri Apr 11 12:28:23 2014 +0200
+++ b/libpurple/protocols/msn/switchboard.c	Fri Apr 11 20:08:22 2014 +0200
@@ -24,6 +24,8 @@
 
 #include "internal.h"
 #include "debug.h"
+#include "image.h"
+#include "image-store.h"
 
 #include "msnutils.h"
 #include "switchboard.h"
@@ -807,7 +809,8 @@
 	PurpleConnection *gc;
 	guchar *image_data;
 	size_t image_len;
-	int imgid;
+	PurpleImage *img;
+	guint imgid;
 	char *image_msg;
 
 	if (!purple_str_has_prefix(data, "base64:"))
@@ -826,9 +829,11 @@
 		return;
 	}
 
-	imgid = purple_imgstore_new_with_id(image_data, image_len, NULL);
-	image_msg = g_strdup_printf("<IMG SRC='" PURPLE_STORED_IMAGE_PROTOCOL "%d'>",
-	                            imgid);
+	img = purple_image_new_from_data(image_data, image_len);
+	imgid = purple_image_store_add_temporary(img);
+	g_object_unref(img);
+	image_msg = g_strdup_printf("<img src=\"" PURPLE_IMAGE_STORE_PROTOCOL
+		"%u\">", imgid);
 
 	if (swboard->current_users > 1 ||
 		((swboard->conv != NULL) &&
@@ -838,7 +843,6 @@
 	else
 		purple_serv_got_im(gc, passport, image_msg, 0, time(NULL));
 
-	purple_imgstore_unref_by_id(imgid);
 	g_free(image_msg);
 }
 

mercurial