Use g_list_free_full instead of manual iterations
--- a/libpurple/cmds.c Fri Oct 18 23:29:33 2019 +0300
+++ b/libpurple/cmds.c Fri Oct 18 23:30:32 2019 +0300
@@ -447,9 +447,6 @@
purple_signals_unregister_by_instance(purple_cmds_get_handle());
- purple_cmd_free(cmds->data);
- cmds = g_list_delete_link(cmds, cmds);
+ g_list_free_full(cmds, (GDestroyNotify)purple_cmd_free); --- a/libpurple/media.c Fri Oct 18 23:29:33 2019 +0300
+++ b/libpurple/media.c Fri Oct 18 23:30:32 2019 +0300
@@ -299,18 +299,12 @@
purple_media_get_instance_private(PURPLE_MEDIA(media));
purple_debug_info("media","purple_media_finalize\n");
- for (; priv->streams; priv->streams = g_list_delete_link(priv->streams, priv->streams))
- purple_media_stream_free(priv->streams->data);
- for (; priv->participants; priv->participants = g_list_delete_link(
- priv->participants, priv->participants))
- g_free(priv->participants->data);
+ g_list_free_full(priv->streams, (GDestroyNotify)purple_media_stream_free); + g_list_free_full(priv->participants, g_free); GList *sessions = g_hash_table_get_values(priv->sessions);
- for (; sessions; sessions = g_list_delete_link(sessions, sessions)) {
- purple_media_session_free(sessions->data);
+ g_list_free_full(sessions, (GDestroyNotify)purple_media_session_free); g_hash_table_destroy(priv->sessions);
--- a/libpurple/media/backend-fs2.c Fri Oct 18 23:29:33 2019 +0300
+++ b/libpurple/media/backend-fs2.c Fri Oct 18 23:30:32 2019 +0300
@@ -394,23 +394,12 @@
purple_debug_info("backend-fs2", "purple_media_backend_fs2_finalize\n");
g_free(priv->conference_type);
- for (; priv->streams; priv->streams =
- g_list_delete_link(priv->streams, priv->streams)) {
- PurpleMediaBackendFs2Stream *stream = priv->streams->data;
+ g_list_free_full(priv->streams, (GDestroyNotify)free_stream); GList *sessions = g_hash_table_get_values(priv->sessions);
- for (; sessions; sessions =
- g_list_delete_link(sessions, sessions)) {
- PurpleMediaBackendFs2Session *session =
+ g_list_free_full(sessions, (GDestroyNotify)free_session); g_hash_table_destroy(priv->sessions);
--- a/libpurple/media/candidate.c Fri Oct 18 23:29:33 2019 +0300
+++ b/libpurple/media/candidate.c Fri Oct 18 23:30:32 2019 +0300
@@ -366,10 +366,7 @@
purple_media_candidate_list_free(GList *candidates)
- for (; candidates; candidates =
- g_list_delete_link(candidates, candidates)) {
- g_object_unref(candidates->data);
+ g_list_free_full(candidates, g_object_unref); --- a/libpurple/media/codec.c Fri Oct 18 23:29:33 2019 +0300
+++ b/libpurple/media/codec.c Fri Oct 18 23:30:32 2019 +0300
@@ -369,10 +369,7 @@
purple_media_codec_list_free(GList *codecs)
- for (; codecs; codecs =
- g_list_delete_link(codecs, codecs)) {
- g_object_unref(codecs->data);
+ g_list_free_full(codecs, g_object_unref); --- a/libpurple/mediamanager.c Fri Oct 18 23:29:33 2019 +0300
+++ b/libpurple/mediamanager.c Fri Oct 18 23:30:32 2019 +0300
@@ -233,18 +233,9 @@
purple_media_manager_get_instance_private(
PURPLE_MEDIA_MANAGER(media));
- for (; priv->medias; priv->medias =
- g_list_delete_link(priv->medias, priv->medias)) {
- g_object_unref(priv->medias->data);
- for (; priv->private_medias; priv->private_medias =
- g_list_delete_link(priv->private_medias, priv->private_medias)) {
- g_object_unref(priv->private_medias->data);
- for (; priv->elements; priv->elements =
- g_list_delete_link(priv->elements, priv->elements)) {
- g_object_unref(priv->elements->data);
+ g_list_free_full(priv->medias, g_object_unref); + g_list_free_full(priv->private_medias, g_object_unref); + g_list_free_full(priv->elements, g_object_unref); gst_caps_unref(priv->video_caps);
#ifdef HAVE_MEDIA_APPLICATION
--- a/libpurple/protocol.c Fri Oct 18 23:29:33 2019 +0300
+++ b/libpurple/protocol.c Fri Oct 18 23:30:32 2019 +0300
@@ -88,12 +88,7 @@
g_return_if_fail(PURPLE_IS_PROTOCOL(protocol));
- while (protocol->user_splits) {
- PurpleAccountUserSplit *split = protocol->user_splits->data;
- purple_account_user_split_destroy(split);
- protocol->user_splits = g_list_delete_link(protocol->user_splits,
- protocol->user_splits);
+ g_list_free_full(protocol->user_splits, (GDestroyNotify)purple_account_user_split_destroy); @@ -101,13 +96,7 @@
g_return_if_fail(PURPLE_IS_PROTOCOL(protocol));
- while (protocol->account_options) {
- PurpleAccountOption *option = protocol->account_options->data;
- purple_account_option_destroy(option);
- protocol->account_options =
- g_list_delete_link(protocol->account_options,
- protocol->account_options);
+ g_list_free_full(protocol->account_options, (GDestroyNotify)purple_account_option_destroy); --- a/libpurple/protocols/jabber/buddy.c Fri Oct 18 23:29:33 2019 +0300
+++ b/libpurple/protocols/jabber/buddy.c Fri Oct 18 23:30:32 2019 +0300
@@ -74,11 +74,7 @@
jbr->commands = g_list_delete_link(jbr->commands, jbr->commands);
- while (jbr->caps.exts) {
- g_free(jbr->caps.exts->data);
- jbr->caps.exts = g_list_delete_link(jbr->caps.exts, jbr->caps.exts);
+ g_list_free_full(jbr->caps.exts, g_free); --- a/libpurple/protocols/jabber/caps.c Fri Oct 18 23:29:33 2019 +0300
+++ b/libpurple/protocols/jabber/caps.c Fri Oct 18 23:30:32 2019 +0300
@@ -45,10 +45,7 @@
free_string_glist(GList *list)
- list = g_list_delete_link(list, list);
+ g_list_free_full(list, g_free); static JabberCapsNodeExts*
@@ -115,10 +112,7 @@
free_string_glist(info->features);
- purple_xmlnode_free(info->forms->data);
- info->forms = g_list_delete_link(info->forms, info->forms);
+ g_list_free_full(info->forms, (GDestroyNotify)purple_xmlnode_free); jabber_caps_node_exts_unref(info->exts);
--- a/libpurple/protocols/jabber/disco.c Fri Oct 18 23:29:33 2019 +0300
+++ b/libpurple/protocols/jabber/disco.c Fri Oct 18 23:30:32 2019 +0300
@@ -564,10 +564,7 @@
if (type == JABBER_IQ_ERROR)
- while(js->chat_servers) {
- g_free(js->chat_servers->data);
- js->chat_servers = g_list_delete_link(js->chat_servers, js->chat_servers);
+ g_list_free_full(js->chat_servers, g_free); query = purple_xmlnode_get_child(packet, "query");
--- a/libpurple/protocols/jabber/jabber.c Fri Oct 18 23:29:33 2019 +0300
+++ b/libpurple/protocols/jabber/jabber.c Fri Oct 18 23:30:32 2019 +0300
@@ -1673,15 +1673,8 @@
g_hash_table_destroy(js->chats);
- while(js->chat_servers) {
- g_free(js->chat_servers->data);
- js->chat_servers = g_list_delete_link(js->chat_servers, js->chat_servers);
- while(js->user_directories) {
- g_free(js->user_directories->data);
- js->user_directories = g_list_delete_link(js->user_directories, js->user_directories);
+ g_list_free_full(js->chat_servers, g_free); + g_list_free_full(js->user_directories, g_free); JabberBytestreamsStreamhost *sh = js->bs_proxies->data;
--- a/libpurple/protocols/jabber/jingle/jingle.c Fri Oct 18 23:29:33 2019 +0300
+++ b/libpurple/protocols/jabber/jingle/jingle.c Fri Oct 18 23:30:32 2019 +0300
@@ -426,8 +426,7 @@
GList *list = g_hash_table_get_values(js->sessions);
- for (; list; list = g_list_delete_link(list, list))
- g_object_unref(list->data);
+ g_list_free_full(list, g_object_unref); --- a/libpurple/protocols/jabber/jingle/session.c Fri Oct 18 23:29:33 2019 +0300
+++ b/libpurple/protocols/jabber/jingle/session.c Fri Oct 18 23:30:32 2019 +0300
@@ -238,14 +238,8 @@
g_free(priv->remote_jid);
- for (; priv->contents; priv->contents =
- g_list_delete_link(priv->contents, priv->contents)) {
- g_object_unref(priv->contents->data);
- for (; priv->pending_contents; priv->pending_contents =
- g_list_delete_link(priv->pending_contents, priv->pending_contents)) {
- g_object_unref(priv->pending_contents->data);
+ g_list_free_full(priv->contents, g_object_unref); + g_list_free_full(priv->pending_contents, g_object_unref); G_OBJECT_CLASS(jingle_session_parent_class)->finalize(session);
--- a/libpurple/protocols/jabber/xdata.c Fri Oct 18 23:29:33 2019 +0300
+++ b/libpurple/protocols/jabber/xdata.c Fri Oct 18 23:30:32 2019 +0300
@@ -291,11 +291,7 @@
purple_request_field_group_add_field(group, field);
- g_free(selected->data);
- selected = g_list_delete_link(selected, selected);
+ g_list_free_full(selected, g_free); } else if(purple_strequal(type, "boolean")) {
--- a/libpurple/savedstatuses.c Fri Oct 18 23:29:33 2019 +0300
+++ b/libpurple/savedstatuses.c Fri Oct 18 23:30:32 2019 +0300
@@ -117,13 +117,7 @@
- while (status->substatuses != NULL)
- PurpleSavedStatusSub *substatus = status->substatuses->data;
- status->substatuses = g_list_remove(status->substatuses, substatus);
- free_saved_status_sub(substatus);
+ g_list_free_full(status->substatuses, (GDestroyNotify)free_saved_status_sub); purple_request_close_with_handle(status);
@@ -1251,11 +1245,7 @@
- while (saved_statuses != NULL) {
- PurpleSavedStatus *saved_status = saved_statuses->data;
- saved_statuses = g_list_remove(saved_statuses, saved_status);
- free_saved_status(saved_status);
+ g_list_free_full(saved_statuses, (GDestroyNotify)free_saved_status); g_hash_table_destroy(creation_times);
--- a/pidgin/gtkconv.c Fri Oct 18 23:29:33 2019 +0300
+++ b/pidgin/gtkconv.c Fri Oct 18 23:30:32 2019 +0300
@@ -2900,12 +2900,8 @@
menu = gtk_menu_item_get_submenu(GTK_MENU_ITEM(more_menu));
/* Remove the previous entries */
- for (list = gtk_container_get_children(GTK_CONTAINER(menu)); list; )
- GtkWidget *w = list->data;
- list = g_list_delete_link(list, list);
+ list = gtk_container_get_children(GTK_CONTAINER(menu)); + g_list_free_full(list, (GDestroyNotify)gtk_widget_destroy); if (!populate_menu_with_options(menu, gtkconv, FALSE))
--- a/pidgin/gtkdialogs.c Fri Oct 18 23:29:33 2019 +0300
+++ b/pidgin/gtkdialogs.c Fri Oct 18 23:30:32 2019 +0300
@@ -58,10 +58,7 @@
pidgin_dialogs_destroy_all()
- while (dialogwindows) {
- gtk_widget_destroy(dialogwindows->data);
- dialogwindows = g_list_remove(dialogwindows, dialogwindows->data);
+ g_list_free_full(dialogwindows, (GDestroyNotify)gtk_widget_destroy); static void destroy_win(GtkWidget *button, GtkWidget *win)
--- a/pidgin/gtkplugin.c Fri Oct 18 23:29:33 2019 +0300
+++ b/pidgin/gtkplugin.c Fri Oct 18 23:30:32 2019 +0300
@@ -759,7 +759,7 @@
g_return_if_fail(d != NULL);
@@ -769,9 +769,7 @@
purple_request_close_with_handle(plugin_dialog);
purple_signals_disconnect_by_handle(plugin_dialog);
list = purple_plugins_find_all();
- for (it = list; it; it = g_list_next(it))
- pref_dialog_close(it->data);
+ g_list_free_full(list, (GDestroyNotify)pref_dialog_close); --- a/pidgin/gtkutils.c Fri Oct 18 23:29:33 2019 +0300
+++ b/pidgin/gtkutils.c Fri Oct 18 23:30:32 2019 +0300
@@ -2228,11 +2228,7 @@
old_mini_dialog_destroy_cb(GtkWidget *dialog,
- while (cb_datas != NULL)
- g_free(cb_datas->data);
- cb_datas = g_list_delete_link(cb_datas, cb_datas);
+ g_list_free_full(cb_datas, g_free);