diff options
author | dequis <dx@dxzone.com.ar> | 2016-10-16 03:50:49 -0300 |
---|---|---|
committer | dequis <dx@dxzone.com.ar> | 2016-10-16 03:51:53 -0300 |
commit | 6e991a9464ce13fb742dcd50a37d5e00084b4233 (patch) | |
tree | 8ab635c766d37d6ae06d6caf415fc99be709b3b0 | |
parent | a08b2db9575b276d7e6008e794fa728518671ec4 (diff) |
Turn purple_chatlist_free() into a imcb_chat_list_free()
I found myself copypasting this to jabber. Might as well make it part of
the API.
-rw-r--r-- | protocols/bee.h | 1 | ||||
-rw-r--r-- | protocols/bee_chat.c | 17 | ||||
-rw-r--r-- | protocols/purple/purple.c | 19 |
3 files changed, 20 insertions, 17 deletions
diff --git a/protocols/bee.h b/protocols/bee.h index 93027d59..56c34210 100644 --- a/protocols/bee.h +++ b/protocols/bee.h @@ -191,5 +191,6 @@ G_MODULE_EXPORT void imcb_chat_invite(struct im_connection *ic, const char *name G_GNUC_DEPRECATED G_MODULE_EXPORT void bee_chat_list_finish(struct im_connection *ic); G_MODULE_EXPORT void imcb_chat_list_finish(struct im_connection *ic); +G_MODULE_EXPORT void imcb_chat_list_free(struct im_connection *ic); #endif /* __BEE_H__ */ diff --git a/protocols/bee_chat.c b/protocols/bee_chat.c index c5f2b262..31b37737 100644 --- a/protocols/bee_chat.c +++ b/protocols/bee_chat.c @@ -284,3 +284,20 @@ void bee_chat_list_finish(struct im_connection *ic) imcb_log(ic, "Warning: using deprecated bee_chat_list_finish. This will be removed in the stable release."); imcb_chat_list_finish(ic); } + +void imcb_chat_list_free(struct im_connection *ic) +{ + bee_chat_info_t *ci; + GSList *l = ic->chatlist; + + while (l) { + ci = l->data; + l = g_slist_delete_link(l, l); + + g_free(ci->title); + g_free(ci->topic); + g_free(ci); + } + + ic->chatlist = NULL; +} diff --git a/protocols/purple/purple.c b/protocols/purple/purple.c index bd84966e..71b495db 100644 --- a/protocols/purple/purple.c +++ b/protocols/purple/purple.c @@ -360,21 +360,6 @@ static void purple_login(account_t *acc) } } -static void purple_chatlist_free(struct im_connection *ic) -{ - bee_chat_info_t *ci; - GSList *l = ic->chatlist; - - while (l) { - ci = l->data; - l = g_slist_delete_link(l, l); - - g_free(ci->title); - g_free(ci->topic); - g_free(ci); - } -} - static void purple_logout(struct im_connection *ic) { struct purple_data *pd = ic->proto_data; @@ -390,7 +375,7 @@ static void purple_logout(struct im_connection *ic) purple_account_set_enabled(pd->account, "BitlBee", FALSE); purple_connections = g_slist_remove(purple_connections, ic); purple_accounts_remove(pd->account); - purple_chatlist_free(ic); + imcb_chat_list_free(ic); g_hash_table_destroy(pd->input_requests); g_free(pd); } @@ -1401,7 +1386,7 @@ static void prplcb_roomlist_in_progress(PurpleRoomlist *list, gboolean in_progre } ic = purple_ic_by_pa(list->account); - purple_chatlist_free(ic); + imcb_chat_list_free(ic); ic->chatlist = g_slist_reverse(rld->chats); rld->chats = NULL; |