Mercurial > pidgin.yaz
comparison libpurple/protocols/jabber/roster.c @ 20835:3de6fbc79134
Another couple leak fixes in the xmpp roster parsing.
author | Daniel Atallah <daniel.atallah@gmail.com> |
---|---|
date | Tue, 09 Oct 2007 00:25:56 +0000 |
parents | 062ed5f59ada |
children | 05f525c8f192 |
comparison
equal
deleted
inserted
replaced
20834:6b9e5bbab0fe | 20835:3de6fbc79134 |
---|---|
65 g2 = groups; | 65 g2 = groups; |
66 | 66 |
67 if(!groups) { | 67 if(!groups) { |
68 if(!buddies) | 68 if(!buddies) |
69 g2 = g_slist_append(g2, g_strdup(_("Buddies"))); | 69 g2 = g_slist_append(g2, g_strdup(_("Buddies"))); |
70 else | 70 else { |
71 g_slist_free(buddies); | |
71 return; | 72 return; |
73 } | |
72 } | 74 } |
73 | 75 |
74 my_bare_jid = g_strdup_printf("%s@%s", js->user->node, js->user->domain); | 76 my_bare_jid = g_strdup_printf("%s@%s", js->user->node, js->user->domain); |
75 | 77 |
76 while(buddies) { | 78 while(buddies) { |
265 PurpleGroup *g; | 267 PurpleGroup *g; |
266 GSList *groups = NULL, *l; | 268 GSList *groups = NULL, *l; |
267 JabberIq *iq; | 269 JabberIq *iq; |
268 xmlnode *query, *item, *group; | 270 xmlnode *query, *item, *group; |
269 | 271 |
272 if(!(b = purple_find_buddy(js->gc->account, name))) | |
273 return; | |
274 | |
270 if(grps) { | 275 if(grps) { |
271 groups = grps; | 276 groups = grps; |
272 } else { | 277 } else { |
273 GSList *buddies = purple_find_buddies(js->gc->account, name); | 278 GSList *buddies = purple_find_buddies(js->gc->account, name); |
274 if(!buddies) | 279 if(!buddies) |
279 groups = g_slist_append(groups, g->name); | 284 groups = g_slist_append(groups, g->name); |
280 buddies = g_slist_remove(buddies, b); | 285 buddies = g_slist_remove(buddies, b); |
281 } | 286 } |
282 } | 287 } |
283 | 288 |
284 if(!(b = purple_find_buddy(js->gc->account, name))) | |
285 return; | |
286 | |
287 iq = jabber_iq_new_query(js, JABBER_IQ_SET, "jabber:iq:roster"); | 289 iq = jabber_iq_new_query(js, JABBER_IQ_SET, "jabber:iq:roster"); |
288 | 290 |
289 query = xmlnode_get_child(iq->node, "query"); | 291 query = xmlnode_get_child(iq->node, "query"); |
290 item = xmlnode_new_child(query, "item"); | 292 item = xmlnode_new_child(query, "item"); |
291 | 293 |