Fri, 18 Oct 2019 23:30:32 +0300
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()); - 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