| 277 PURPLE_DBUS_REGISTER_POINTER(icon, PurpleBuddyIcon); |
277 PURPLE_DBUS_REGISTER_POINTER(icon, PurpleBuddyIcon); |
| 278 |
278 |
| 279 icon->account = account; |
279 icon->account = account; |
| 280 icon->username = g_strdup(username); |
280 icon->username = g_strdup(username); |
| 281 icon->checksum = NULL; |
281 icon->checksum = NULL; |
| |
282 icon->ref_count = 1; |
| 282 |
283 |
| 283 icon_cache = g_hash_table_lookup(account_cache, account); |
284 icon_cache = g_hash_table_lookup(account_cache, account); |
| 284 |
285 |
| 285 if (icon_cache == NULL) |
286 if (icon_cache == NULL) |
| 286 { |
287 { |
| 651 if (read_icon_file(path, &data, &len)) |
652 if (read_icon_file(path, &data, &len)) |
| 652 { |
653 { |
| 653 const char *checksum; |
654 const char *checksum; |
| 654 |
655 |
| 655 icon = purple_buddy_icon_create(account, username); |
656 icon = purple_buddy_icon_create(account, username); |
| 656 icon->ref_count = 0; |
|
| 657 icon->img = NULL; |
657 icon->img = NULL; |
| 658 checksum = purple_blist_node_get_string((PurpleBlistNode*)b, "icon_checksum"); |
658 checksum = purple_blist_node_get_string((PurpleBlistNode*)b, "icon_checksum"); |
| 659 purple_buddy_icon_set_data(icon, data, len, checksum); |
659 purple_buddy_icon_set_data(icon, data, len, checksum); |
| 660 } |
660 } |
| 661 g_free(path); |
661 g_free(path); |