diff options
| -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; | 
