Mercurial > pidgin.yaz
diff libpurple/account.c @ 18452:45865fb3f4f9
Do not crash if you delete an account with an open conversation.
author | Sadrul Habib Chowdhury <imadil@gmail.com> |
---|---|
date | Sat, 07 Jul 2007 04:03:41 +0000 |
parents | ab6d2763b8d8 |
children | 5c1ed6296b56 1ca6c4b234ab b7d27c13a061 |
line wrap: on
line diff
--- a/libpurple/account.c Sat Jul 07 00:30:45 2007 +0000 +++ b/libpurple/account.c Sat Jul 07 04:03:41 2007 +0000 @@ -2183,6 +2183,7 @@ purple_accounts_delete(PurpleAccount *account) { PurpleBlistNode *gnode, *cnode, *bnode; + GList *iter; g_return_if_fail(account != NULL); @@ -2231,6 +2232,14 @@ } } + /* Remove any open conversation for this account */ + for (iter = purple_get_conversations(); iter; ) { + PurpleConversation *conv = iter->data; + iter = iter->next; + if (purple_conversation_get_account(conv) == account) + purple_conversation_destroy(conv); + } + /* Remove this account's pounces */ purple_pounce_destroy_all_by_account(account);