ped = static_cast<PaneExifData *>(g_object_get_data(G_OBJECT(pane), "pane_data"));
list = gtk_container_get_children(GTK_CONTAINER(ped->vbox));
- while (list)
+ GList *work = list;
+ while (work)
{
- entry = static_cast<GtkWidget *>(list->data);
- list = list->next;
+ entry = static_cast<GtkWidget *>(work->data);
+ work = work->next;
ee = static_cast<ExifEntry *>(g_object_get_data(G_OBJECT(entry), "entry_data"));
exif_list = g_list_append(exif_list, g_strdup(ee->title));
exif_list = g_list_append(exif_list, g_strdup(ee->key));
metadata_write_GPS_coord(fd, "Xmp.exif.GPSLongitude", pgd->dest_longitude);
}
}
- g_list_free(work);
g_list_free(pgd->geocode_list);
}
}
}
}
- g_list_free(work);
+ g_list_free(list);
if(count)
{
gtk_tree_view_map_expanded_rows(GTK_TREE_VIEW(pkd->keyword_treeview),
(bar_keyword_tree_get_expanded_cb), &path_expanded);
- g_list_first(path_expanded);
- while (path_expanded)
+ GList *work = g_list_first(path_expanded);
+ while (work)
{
- bar_pane_keywords_entry_write_config(static_cast<gchar *>(path_expanded->data), outstr, indent);
- g_free(path_expanded->data);
- path_expanded = path_expanded->next;
+ bar_pane_keywords_entry_write_config(static_cast<gchar *>(work->data), outstr, indent);
+ work = work->next;
}
- g_list_free(path_expanded);
+ g_list_free_full(path_expanded, g_free);
indent--;
WRITE_NL();
*/
static void dupe_match_link_clear(DupeItem *parent, gboolean unlink_children)
{
- GList *work;
-
- work = parent->group;
- while (work)
+ if (unlink_children)
{
- auto dm = static_cast<DupeMatch *>(work->data);
- work = work->next;
+ GList *work;
- if (unlink_children) dupe_match_unlink_child(parent, dm->di);
+ work = parent->group;
+ while (work)
+ {
+ auto dm = static_cast<DupeMatch *>(work->data);
+ work = work->next;
- g_free(dm);
+ dupe_match_unlink_child(parent, dm->di);
+ }
}
- g_list_free(parent->group);
+ g_list_free_full(parent->group, g_free);
parent->group = nullptr;
parent->group_rank = 0.0;
}
log_printf("%d", global_file_data_count);
log_printf("%d", g_list_length(list));
- while (list)
+ GList *work = list;
+ while (work)
{
- fd = static_cast<FileData *>(list->data);
+ fd = static_cast<FileData *>(work->data);
log_printf("%-4d %s", fd->ref, fd->path);
- list = list->next;
+ work = work->next;
}
g_list_free(list);
{
auto fd = static_cast<FileData *>(work->data);
const gchar *name = fd->name;
+ GList *link = work;
+ work = work->next;
if ((!options->file_filter.show_hidden_files && is_hidden_file(name)) ||
(!is_dir_list && !filter_name_exists(name)) ||
(is_dir_list && name[0] == '.' && (strcmp(name, GQ_CACHE_LOCAL_THUMB) == 0 ||
strcmp(name, GQ_CACHE_LOCAL_METADATA) == 0)) )
{
- GList *link = work;
-
list = g_list_remove_link(list, link);
file_data_unref(fd);
g_list_free(link);
}
-
- work = work->next;
}
return list;
{
// unlock locked files in this directory
filelist_read(vf->dir_fd, &files, nullptr);
- while (files)
+ GList *work = files;
+ while (work)
{
- auto fd = static_cast<FileData *>(files->data);
- files = files->next;
+ auto fd = static_cast<FileData *>(work->data);
+ work = work->next;
file_data_unlock(fd);
file_data_unref(fd); // undo the ref that got added in filelist_read
}