--- a/pidgin/pidgincontactlist.c Thu Aug 07 21:32:18 2025 -0500 +++ b/pidgin/pidgincontactlist.c Thu Aug 07 21:34:33 2025 -0500 @@ -169,7 +169,7 @@ PurplePerson *person, G_GNUC_UNUSED gpointer data) { - PurpleAvatar *avatar = NULL; + PurpleImage *avatar = NULL; PurpleContactInfo *info = NULL; /* When filtering we get called for rows that have been filtered out. We @@ -186,11 +186,22 @@ } avatar = purple_person_get_avatar_for_display(person); - if(PURPLE_IS_AVATAR(avatar)) { - GdkPixbuf *pixbuf = purple_avatar_get_pixbuf(avatar); + if(PURPLE_IS_IMAGE(avatar)) { + GBytes *contents = purple_image_get_contents(avatar); + + if(contents != NULL) { + GdkTexture *texture = NULL; + GError *error = NULL; - if(GDK_IS_PIXBUF(pixbuf)) { - return gdk_texture_new_for_pixbuf(pixbuf); + texture = gdk_texture_new_from_bytes(contents, &error); + if(error != NULL) { + g_warning("failed to create texture: %s", error->message); + g_clear_error(&error); + + return NULL; + } + + return texture; } }