Mercurial > geeqie
diff src/utilops.c @ 1656:349ebc02b8e2
fixed leak in file_util_* functions
- file_util_* are changed to take over the filelist and free it when
done
- make sure that these functions are called correctly
author | nadvornik |
---|---|
date | Sat, 20 Jun 2009 18:42:23 +0000 |
parents | 58a5d1e01e33 |
children | 47b191b77e07 |
line wrap: on
line diff
--- a/src/utilops.c Sat Jun 20 16:46:32 2009 +0000 +++ b/src/utilops.c Sat Jun 20 18:42:23 2009 +0000 @@ -1931,10 +1931,9 @@ } } -static void file_util_delete_full(FileData *source_fd, GList *source_list, GtkWidget *parent, UtilityPhase phase) +static void file_util_delete_full(FileData *source_fd, GList *flist, GtkWidget *parent, UtilityPhase phase) { UtilityData *ud; - GList *flist = filelist_copy(source_list); GList *ungrouped = NULL; if (source_fd) @@ -1979,10 +1978,9 @@ } -static void file_util_write_metadata_full(FileData *source_fd, GList *source_list, GtkWidget *parent, UtilityPhase phase, FileUtilDoneFunc done_func, gpointer done_data) +static void file_util_write_metadata_full(FileData *source_fd, GList *flist, GtkWidget *parent, UtilityPhase phase, FileUtilDoneFunc done_func, gpointer done_data) { UtilityData *ud; - GList *flist = filelist_copy(source_list); if (source_fd) flist = g_list_append(flist, file_data_ref(source_fd)); @@ -2023,10 +2021,9 @@ file_util_dialog_run(ud); } -static void file_util_move_full(FileData *source_fd, GList *source_list, const gchar *dest_path, GtkWidget *parent, UtilityPhase phase) +static void file_util_move_full(FileData *source_fd, GList *flist, const gchar *dest_path, GtkWidget *parent, UtilityPhase phase) { UtilityData *ud; - GList *flist = filelist_copy(source_list); GList *ungrouped = NULL; if (source_fd) @@ -2070,10 +2067,9 @@ file_util_dialog_run(ud); } -static void file_util_copy_full(FileData *source_fd, GList *source_list, const gchar *dest_path, GtkWidget *parent, UtilityPhase phase) +static void file_util_copy_full(FileData *source_fd, GList *flist, const gchar *dest_path, GtkWidget *parent, UtilityPhase phase) { UtilityData *ud; - GList *flist = filelist_copy(source_list); GList *ungrouped = NULL; if (source_fd) @@ -2117,10 +2113,9 @@ file_util_dialog_run(ud); } -static void file_util_rename_full(FileData *source_fd, GList *source_list, const gchar *dest_path, GtkWidget *parent, UtilityPhase phase) +static void file_util_rename_full(FileData *source_fd, GList *flist, const gchar *dest_path, GtkWidget *parent, UtilityPhase phase) { UtilityData *ud; - GList *flist = filelist_copy(source_list); GList *ungrouped = NULL; if (source_fd) @@ -2164,10 +2159,9 @@ file_util_dialog_run(ud); } -static void file_util_start_editor_full(const gchar *key, FileData *source_fd, GList *source_list, const gchar *dest_path, const gchar *working_directory, GtkWidget *parent, UtilityPhase phase) +static void file_util_start_editor_full(const gchar *key, FileData *source_fd, GList *flist, const gchar *dest_path, const gchar *working_directory, GtkWidget *parent, UtilityPhase phase) { UtilityData *ud; - GList *flist; GList *ungrouped = NULL; if (editor_no_param(key)) @@ -2179,18 +2173,18 @@ if (source_fd) file_directory = remove_level_from_path(source_fd->path); - if (!file_directory && source_list) - file_directory = remove_level_from_path(((FileData *)source_list->data)->path); + if (!file_directory && flist) + file_directory = remove_level_from_path(((FileData *)flist->data)->path); working_directory = file_directory; } /* just start the editor, don't care about files */ start_editor(key, working_directory); g_free(file_directory); + filelist_free(flist); return; } - flist = filelist_copy(source_list); if (source_fd) { @@ -2794,5 +2788,6 @@ gtk_clipboard_set_text(clipboard, new->str, new->len); g_string_free(new, TRUE); + filelist_free(list); } /* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */