summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorqarkai <qarkai@gmail.com>2019-10-18 23:30:32 +0300
committerqarkai <qarkai@gmail.com>2019-10-18 23:30:32 +0300
commitc12f195ceeaca408bb1e77953fa87e34d431abfe (patch)
tree68683cd985a8536423edb85c2aee4fdb0ca7a5dc
parentf210b5f342bd1af8b92fdf79f3675e895f50ef34 (diff)
downloadpidgin-c12f195ceeaca408bb1e77953fa87e34d431abfe.tar.gz
Use g_list_free_full instead of manual iterations
-rw-r--r--libpurple/cmds.c5
-rw-r--r--libpurple/media.c12
-rw-r--r--libpurple/media/backend-fs2.c15
-rw-r--r--libpurple/media/candidate.c5
-rw-r--r--libpurple/media/codec.c5
-rw-r--r--libpurple/mediamanager.c15
-rw-r--r--libpurple/protocol.c15
-rw-r--r--libpurple/protocols/jabber/buddy.c6
-rw-r--r--libpurple/protocols/jabber/caps.c10
-rw-r--r--libpurple/protocols/jabber/disco.c5
-rw-r--r--libpurple/protocols/jabber/jabber.c11
-rw-r--r--libpurple/protocols/jabber/jingle/jingle.c3
-rw-r--r--libpurple/protocols/jabber/jingle/session.c10
-rw-r--r--libpurple/protocols/jabber/xdata.c6
-rw-r--r--libpurple/savedstatuses.c14
-rw-r--r--pidgin/gtkconv.c8
-rw-r--r--pidgin/gtkdialogs.c5
-rw-r--r--pidgin/gtkplugin.c6
-rw-r--r--pidgin/gtkutils.c6
19 files changed, 31 insertions, 131 deletions
diff --git a/libpurple/cmds.c b/libpurple/cmds.c
index 8f4d2ebfd3..7d3533733c 100644
--- a/libpurple/cmds.c
+++ b/libpurple/cmds.c
@@ -447,9 +447,6 @@ void purple_cmds_uninit(void)
{
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);
}
diff --git a/libpurple/media.c b/libpurple/media.c
index 8fdd5f9315..a8b911fb75 100644
--- a/libpurple/media.c
+++ b/libpurple/media.c
@@ -299,18 +299,12 @@ purple_media_finalize(GObject *media)
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);
}
diff --git a/libpurple/media/backend-fs2.c b/libpurple/media/backend-fs2.c
index 8e28b42213..560a634d4a 100644
--- a/libpurple/media/backend-fs2.c
+++ b/libpurple/media/backend-fs2.c
@@ -394,23 +394,12 @@ purple_media_backend_fs2_finalize(GObject *obj)
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);
}
diff --git a/libpurple/media/candidate.c b/libpurple/media/candidate.c
index 9b382589ad..a9e34a91e8 100644
--- a/libpurple/media/candidate.c
+++ b/libpurple/media/candidate.c
@@ -366,10 +366,7 @@ purple_media_candidate_list_copy(GList *candidates)
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 *
diff --git a/libpurple/media/codec.c b/libpurple/media/codec.c
index f02c5b97d9..aa924fb99d 100644
--- a/libpurple/media/codec.c
+++ b/libpurple/media/codec.c
@@ -369,10 +369,7 @@ purple_media_codec_list_copy(GList *codecs)
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 *
diff --git a/libpurple/mediamanager.c b/libpurple/mediamanager.c
index 11163649b9..c316d03943 100644
--- a/libpurple/mediamanager.c
+++ b/libpurple/mediamanager.c
@@ -233,18 +233,9 @@ purple_media_manager_finalize (GObject *media)
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
diff --git a/libpurple/protocol.c b/libpurple/protocol.c
index 3e53e5ba7b..ee8805d321 100644
--- a/libpurple/protocol.c
+++ b/libpurple/protocol.c
@@ -88,12 +88,7 @@ user_splits_free(PurpleProtocol *protocol)
{
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 @@ account_options_free(PurpleProtocol *protocol)
{
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
diff --git a/libpurple/protocols/jabber/buddy.c b/libpurple/protocols/jabber/buddy.c
index 10d04c7251..e509976b7f 100644
--- a/libpurple/protocols/jabber/buddy.c
+++ b/libpurple/protocols/jabber/buddy.c
@@ -74,11 +74,7 @@ jabber_buddy_resource_free(JabberBuddyResource *jbr)
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);
diff --git a/libpurple/protocols/jabber/caps.c b/libpurple/protocols/jabber/caps.c
index 74866d1550..96b1ba3342 100644
--- a/libpurple/protocols/jabber/caps.c
+++ b/libpurple/protocols/jabber/caps.c
@@ -45,10 +45,7 @@ static guint save_timer = 0;
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 @@ jabber_caps_client_info_destroy(JabberCapsClientInfo *info)
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);
diff --git a/libpurple/protocols/jabber/disco.c b/libpurple/protocols/jabber/disco.c
index a0a7fb2c35..261979c004 100644
--- a/libpurple/protocols/jabber/disco.c
+++ b/libpurple/protocols/jabber/disco.c
@@ -564,10 +564,7 @@ jabber_disco_server_items_result_cb(JabberStream *js, const char *from,
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");
diff --git a/libpurple/protocols/jabber/jabber.c b/libpurple/protocols/jabber/jabber.c
index 98cdd952e9..2c391b0200 100644
--- a/libpurple/protocols/jabber/jabber.c
+++ b/libpurple/protocols/jabber/jabber.c
@@ -1673,15 +1673,8 @@ void jabber_close(PurpleConnection *gc)
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;
diff --git a/libpurple/protocols/jabber/jingle/jingle.c b/libpurple/protocols/jabber/jingle/jingle.c
index ce9d0b0cd9..7dfdfcf34e 100644
--- a/libpurple/protocols/jabber/jingle/jingle.c
+++ b/libpurple/protocols/jabber/jingle/jingle.c
@@ -426,8 +426,7 @@ jingle_terminate_sessions(JabberStream *js)
{
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);
}
}
diff --git a/libpurple/protocols/jabber/jingle/session.c b/libpurple/protocols/jabber/jingle/session.c
index 2e86d39008..893a8314e7 100644
--- a/libpurple/protocols/jabber/jingle/session.c
+++ b/libpurple/protocols/jabber/jingle/session.c
@@ -238,14 +238,8 @@ jingle_session_finalize (GObject *session)
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);
}
diff --git a/libpurple/protocols/jabber/xdata.c b/libpurple/protocols/jabber/xdata.c
index 543b4e6ceb..962b67c319 100644
--- a/libpurple/protocols/jabber/xdata.c
+++ b/libpurple/protocols/jabber/xdata.c
@@ -291,11 +291,7 @@ void *jabber_x_data_request_with_actions(JabberStream *js, PurpleXmlNode *packet
}
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;
diff --git a/libpurple/savedstatuses.c b/libpurple/savedstatuses.c
index acfd59b2d2..3df018c2c1 100644
--- a/libpurple/savedstatuses.c
+++ b/libpurple/savedstatuses.c
@@ -117,13 +117,7 @@ free_saved_status(PurpleSavedStatus *status)
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 @@ purple_savedstatuses_uninit(void)
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;
diff --git a/pidgin/gtkconv.c b/pidgin/gtkconv.c
index 21ef2d5b38..c15098ee39 100644
--- a/pidgin/gtkconv.c
+++ b/pidgin/gtkconv.c
@@ -2900,12 +2900,8 @@ regenerate_options_items(PidginConvWindow *win)
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))
{
diff --git a/pidgin/gtkdialogs.c b/pidgin/gtkdialogs.c
index e4442e923f..50f76bceb3 100644
--- a/pidgin/gtkdialogs.c
+++ b/pidgin/gtkdialogs.c
@@ -58,10 +58,7 @@ struct _PidginGroupMergeObject {
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)
diff --git a/pidgin/gtkplugin.c b/pidgin/gtkplugin.c
index 53ae976e51..9c2f804dff 100644
--- a/pidgin/gtkplugin.c
+++ b/pidgin/gtkplugin.c
@@ -759,7 +759,7 @@ static void plugin_dialog_response_cb(GtkWidget *d, int response, GtkTreeSelecti
GtkTreeModel *model;
GValue val;
GtkTreeIter iter;
- GList *list, *it;
+ GList *list;
g_return_if_fail(d != NULL);
@@ -769,9 +769,7 @@ static void plugin_dialog_response_cb(GtkWidget *d, int response, GtkTreeSelecti
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;
diff --git a/pidgin/gtkutils.c b/pidgin/gtkutils.c
index 529ff29684..bfcb6a9e32 100644
--- a/pidgin/gtkutils.c
+++ b/pidgin/gtkutils.c
@@ -2228,11 +2228,7 @@ static void
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