summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libpurple/protocols/jabber/buddy.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/libpurple/protocols/jabber/buddy.c b/libpurple/protocols/jabber/buddy.c
index 0323e129da..624e274ff4 100644
--- a/libpurple/protocols/jabber/buddy.c
+++ b/libpurple/protocols/jabber/buddy.c
@@ -74,8 +74,6 @@ jabber_buddy_resource_free(JabberBuddyResource *jbr)
{
g_return_if_fail(jbr != NULL);
- jbr->jb->resources = g_list_remove(jbr->jb->resources, jbr);
-
g_list_free_full(jbr->commands, (GDestroyNotify)jabber_adhoc_commands_free);
g_list_free_full(jbr->caps.exts, g_free);
g_free(jbr->name);
@@ -92,8 +90,7 @@ void jabber_buddy_free(JabberBuddy *jb)
g_return_if_fail(jb != NULL);
g_free(jb->error_msg);
- while(jb->resources)
- jabber_buddy_resource_free(jb->resources->data);
+ g_list_free_full(jb->resources, (GDestroyNotify)jabber_buddy_resource_free);
g_free(jb);
}
@@ -256,6 +253,7 @@ void jabber_buddy_remove_resource(JabberBuddy *jb, const char *resource)
if(!jbr)
return;
+ jbr->jb->resources = g_list_remove(jbr->jb->resources, jbr);
jabber_buddy_resource_free(jbr);
}