[Pidgin] #17259: Buddy icons rewritten at every startup

Pidgin trac at pidgin.im
Mon Oct 16 07:52:14 EDT 2017


#17259: Buddy icons rewritten at every startup
--------------------+--------------------------
 Reporter:  dwmw2   |      Owner:  EionRobb
     Type:  defect  |     Status:  new
Milestone:          |  Component:  unclassified
  Version:  2.12.0  |   Keywords:
--------------------+--------------------------
 On every startup, Pidgin seems to spend a long time rewriting every custom
 buddy icon...
 {{{
 (12:34:21) util: Writing file
 /home/local/ANT/dwmw/.purple/icons/1d7954de712ff57c1cb6a79f8524035e78fdc1d7.jpg
 (12:34:21) util: Writing file
 /home/local/ANT/dwmw/.purple/icons/92ea5a2c421d4d2b1365bee03e9806551db2b6fc.jpg
 (12:34:21) util: Writing file
 /home/local/ANT/dwmw/.purple/icons/9c630c8cad7daed6e1199ce3b844c5771b8495ab.jpg
 (12:34:21) util: Writing file
 /home/local/ANT/dwmw/.purple/icons/08e1c46c1ac8f32acf2ca639be8ee72bfb2bc357.jpg
 (12:34:21) util: Writing file
 /home/local/ANT/dwmw/.purple/icons/f6b438a4c38010c500b0de988a74f7fdf0d90870.jpg
 ...
 }}}
 {{{
 #0  0x00007ffff524fd50 in purple_util_write_data_to_file_absolute
 (filename_full=filename_full at entry=0x1a23a40
 "/home/local/ANT/dwmw/.purple/icons/92ea5a2c421d4d2b1365bee03e9806551db2b6fc.jpg",
 data=0x1a2b470 "\377\330\377", <incomplete sequence \340>,
 size=size at entry=4799) at util.c:2581
 #1  0x00007ffff51fedb6 in purple_buddy_icon_data_cache (img=0x1a23720) at
 buddyicon.c:177
 #2  0x00007ffff51fedb6 in purple_buddy_icon_data_new
 (icon_data=icon_data at entry=0x1a2b470 "\377\330\377", <incomplete sequence
 \340>, icon_len=icon_len at entry=4799, filename=0x0) at buddyicon.c:281
 #3  0x00007ffff51ff7cb in purple_buddy_icons_node_set_custom_icon
 (node=node at entry=0xb2a060, icon_data=0x1a2b470 "\377\330\377", <incomplete
 sequence \340>, icon_len=4799) at buddyicon.c:870
 #4  0x00007ffff51ffc6e in purple_buddy_icons_node_find_custom_icon
 (node=0xb2a060) at buddyicon.c:843
 #5  0x000000000043a35f in pidgin_blist_get_buddy_icon
 (node=node at entry=0xb2a1d0, scaled=scaled at entry=1, greyed=greyed at entry=1)
     at gtkblist.c:2683
 #6  0x00000000004449dc in buddy_node (buddy=buddy at entry=0xb2a1d0,
 iter=iter at entry=0x7fffffffaae0, node=node at entry=0xb2a060)
     at gtkblist.c:6503
 #7  0x0000000000444f10 in pidgin_blist_update_contact
 (list=list at entry=0xb1bcc0, node=node at entry=0xb2a1d0) at gtkblist.c:6679
 #8  0x000000000044559a in pidgin_blist_update_buddy
 (list=list at entry=0xb1bcc0, node=node at entry=0xb2a1d0, status_change=1)
     at gtkblist.c:6701
 #9  0x0000000000445013 in pidgin_blist_update (list=0xb1bcc0,
 node=0xb2a1d0) at gtkblist.c:6850
 #10 0x00007ffff51fa8ea in purple_blist_add_account
 (account=account at entry=0x82a6d0) at blist.c:2692
 #11 0x00007ffff520716f in purple_connection_set_state (gc=0x1252e90,
 state=<optimised out>) at connection.c:372
 }}}

 This seems to be because `purple_buddy_icon_data_new()` doesn't find the
 image already in the `icon_data_cache` hash table (having made no attempt
 to prepopulate that hash table with the already-cached icons), so it
 decides to read it in and write it back out to the same file.

--
Ticket URL: <https://developer.pidgin.im/ticket/17259>
Pidgin <https://pidgin.im>
Pidgin


More information about the Tracker mailing list