Mercurial > pidgin
diff libpurple/protocols/qq/buddy_info.c @ 25807:e35115192593
Finished struct hiding in bonjour and qq
author | Gary Kramlich <grim@reaperworld.com> |
---|---|
date | Sun, 02 Nov 2008 10:21:19 +0000 |
parents | cae676ac3c70 |
children | 88a66cb4a8d9 |
line wrap: on
line diff
--- a/libpurple/protocols/qq/buddy_info.c Sun Nov 02 09:25:16 2008 +0000 +++ b/libpurple/protocols/qq/buddy_info.c Sun Nov 02 10:21:19 2008 +0000 @@ -638,7 +638,7 @@ gchar *alias_utf8; PurpleAccount *account = purple_connection_get_account(gc); - qd = (qq_data *) gc->proto_data; + qd = (qq_data *)purple_connection_get_protocol_data(gc); uid = strtol(segments[QQ_INFO_UID], NULL, 10); who = uid_to_purple_name(uid); @@ -657,15 +657,16 @@ buddy = purple_find_buddy(gc->account, who); } - if (buddy == NULL || buddy->proto_data == NULL) { + /* if the buddy is null, the api will catch it and return null here */ + bd = purple_buddy_get_protocol_data(buddy); + + if (buddy == NULL || bd) { g_free(who); g_free(alias_utf8); return; } /* update buddy list (including myself, if myself is the buddy) */ - bd = (qq_buddy_data *)buddy->proto_data; - bd->age = strtol(segments[QQ_INFO_AGE], NULL, 10); bd->gender = strtol(segments[QQ_INFO_GENDER], NULL, 10); bd->face = strtol(segments[QQ_INFO_FACE], NULL, 10); @@ -794,8 +795,7 @@ for (it = buddies; it; it = it->next) { buddy = it->data; if (buddy == NULL) continue; - if (buddy->proto_data == NULL) continue; - bd = (qq_buddy_data *)buddy->proto_data; + if ((bd = purple_buddy_get_protocol_data(buddy)) == NULL) continue; if (bd->uid == 0) continue; /* keep me as end of packet*/ if (bd->uid == qd->uid) continue; bytes += qq_put32(buf + bytes, bd->uid);