Use g_list_free_full instead of manual iterations

Fri, 18 Oct 2019 23:30:32 +0300

author
qarkai <qarkai@gmail.com>
date
Fri, 18 Oct 2019 23:30:32 +0300
changeset 40062
d25228fc7b8e
parent 40061
b3ac7a4a6fc7
child 40063
adcaeceb52d8

Use g_list_free_full instead of manual iterations

libpurple/cmds.c file | annotate | diff | comparison | revisions
libpurple/media.c file | annotate | diff | comparison | revisions
libpurple/media/backend-fs2.c file | annotate | diff | comparison | revisions
libpurple/media/candidate.c file | annotate | diff | comparison | revisions
libpurple/media/codec.c file | annotate | diff | comparison | revisions
libpurple/mediamanager.c file | annotate | diff | comparison | revisions
libpurple/protocol.c file | annotate | diff | comparison | revisions
libpurple/protocols/jabber/buddy.c file | annotate | diff | comparison | revisions
libpurple/protocols/jabber/caps.c file | annotate | diff | comparison | revisions
libpurple/protocols/jabber/disco.c file | annotate | diff | comparison | revisions
libpurple/protocols/jabber/jabber.c file | annotate | diff | comparison | revisions
libpurple/protocols/jabber/jingle/jingle.c file | annotate | diff | comparison | revisions
libpurple/protocols/jabber/jingle/session.c file | annotate | diff | comparison | revisions
libpurple/protocols/jabber/xdata.c file | annotate | diff | comparison | revisions
libpurple/savedstatuses.c file | annotate | diff | comparison | revisions
pidgin/gtkconv.c file | annotate | diff | comparison | revisions
pidgin/gtkdialogs.c file | annotate | diff | comparison | revisions
pidgin/gtkplugin.c file | annotate | diff | comparison | revisions
pidgin/gtkutils.c file | annotate | diff | comparison | revisions
--- 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());
 
-	while (cmds) {
-		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);
 
 	if (priv->sessions) {
 		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;
-		free_stream(stream);
-	}
+	g_list_free_full(priv->streams, (GDestroyNotify)free_stream);
 
 	if (priv->sessions) {
 		GList *sessions = g_hash_table_get_values(priv->sessions);
 
-		for (; sessions; sessions =
-				g_list_delete_link(sessions, sessions)) {
-			PurpleMediaBackendFs2Session *session =
-					sessions->data;
-			free_session(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 @@
 void
 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);
 }
 
 gchar *
--- 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 @@
 void
 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);
 }
 
 gchar *
--- 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);
 	if (priv->video_caps)
 		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);
 }
 
 static void
@@ -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);
 }
 
 static void
--- 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);
 	g_free(jbr->name);
 	g_free(jbr->status);
 	g_free(jbr->thread_id);
--- 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 @@
 static void
 free_string_glist(GList *list)
 {
-	while (list) {
-		g_free(list->data);
-		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);
 
-	while (info->forms) {
-		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)
 		return;
 
-	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 @@
 	if(js->chats)
 		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);
 
 	while(js->bs_proxies) {
 		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 @@
 {
 	if (js->sessions) {
 		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);
 	g_free(priv->local_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);
 
-			while(selected) {
-				g_free(selected->data);
-				selected = g_list_delete_link(selected, selected);
-			}
-
+			g_list_free_full(selected, g_free);
 		} else if(purple_strequal(type, "boolean")) {
 			gboolean def = FALSE;
 
--- 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 @@
 
 	g_free(status->title);
 	g_free(status->message);
-
-	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);
 	g_free(status);
 }
@@ -1251,11 +1245,7 @@
 		sync_statuses();
 	}
 
-	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);
 	creation_times = NULL;
--- 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);
-		gtk_widget_destroy(w);
-	}
+	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 @@
 void
 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 @@
 	GtkTreeModel *model;
 	GValue val;
 	GtkTreeIter iter;
-	GList *list, *it;
+	GList *list;
 
 	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(list);
+		g_list_free_full(list, (GDestroyNotify)pref_dialog_close);
 		gtk_widget_destroy(d);
 		plugin_dialog = NULL;
 		break;
--- 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,
                            GList *cb_datas)
 {
-	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);
 }
 
 static void

mercurial