pidgin/pidgin

Fix updating custom smileys
release-2.x.y
23 months ago, Belgin Știrbu
55aa35e81e71
Parents 1d02278206d2
Children 1912d331d78c
Fix updating custom smileys

If you create a custom smiley and you send it to someone, then you update the
smiley picture and you send it again to the same person, it does not show the updated
smiley on their end, instead it shows the old picture.

Testing Done:
Updated custom smileys in Jabber on Windows and Linux and they updated accordingly.

Bugs closed: PIDGIN-17153

Reviewed at https://reviews.imfreedom.org/r/1477/
--- a/libpurple/protocols/jabber/message.c Wed May 25 23:51:10 2022 -0500
+++ b/libpurple/protocols/jabber/message.c Wed May 25 23:51:44 2022 -0500
@@ -967,26 +967,20 @@
for (iterator = found_smileys; iterator ;
iterator = g_list_next(iterator)) {
PurpleSmiley *smiley = (PurpleSmiley *) iterator->data;
- const gchar *shortcut = purple_smiley_get_shortcut(smiley);
- const JabberData *data =
- jabber_data_find_local_by_alt(shortcut);
PurpleStoredImage *image = purple_smiley_get_stored_image(smiley);
if (purple_imgstore_get_size(image) <= JABBER_DATA_MAX_SIZE) {
- /* the object has not been sent before */
- if (!data) {
- const gchar *ext = purple_imgstore_get_extension(image);
- JabberStream *js = jm->js;
-
- JabberData *new_data =
- jabber_data_create_from_data(purple_imgstore_get_data(image),
- purple_imgstore_get_size(image),
- jabber_message_get_mimetype_from_ext(ext), FALSE, js);
- purple_debug_info("jabber",
- "cache local smiley alt = %s, cid = %s\n",
- shortcut, jabber_data_get_cid(new_data));
- jabber_data_associate_local(new_data, shortcut);
- }
+ const gchar *shortcut = purple_smiley_get_shortcut(smiley);
+ const gchar *ext = purple_imgstore_get_extension(image);
+ JabberStream *js = jm->js;
+ JabberData *data =
+ jabber_data_create_from_data(purple_imgstore_get_data(image),
+ purple_imgstore_get_size(image),
+ jabber_message_get_mimetype_from_ext(ext), FALSE, js);
+ purple_debug_info("jabber",
+ "cache local smiley alt = %s, cid = %s\n",
+ shortcut, jabber_data_get_cid(data));
+ jabber_data_associate_local(data, shortcut);
valid_smileys = g_list_append(valid_smileys, smiley);
} else {
has_too_large_smiley = TRUE;