summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErnestas Kulik <ernestask@gnome.org>2017-05-15 11:11:44 +0300
committerErnestas Kulik <ernestask@gnome.org>2017-05-15 15:04:38 +0300
commitcaef877dee45de2dd2708ee58162627df7b7e24d (patch)
tree115660a99e64e5db37f62839054c2fddd0e826b8
parent9e59b21fede32608bad276505da897144b41ebda (diff)
downloadnautilus-caef877dee45de2dd2708ee58162627df7b7e24d.tar.gz
file-operations: create: use automatic cleanup
https://bugzilla.gnome.org/show_bug.cgi?id=782650
-rw-r--r--src/nautilus-file-operations.c61
1 files changed, 22 insertions, 39 deletions
diff --git a/src/nautilus-file-operations.c b/src/nautilus-file-operations.c
index e4a3cf465..626587632 100644
--- a/src/nautilus-file-operations.c
+++ b/src/nautilus-file-operations.c
@@ -7367,12 +7367,11 @@ create_task_thread_func (GTask *task,
CreateJob *job;
CommonJob *common;
int count;
- GFile *dest;
+ g_autoptr (GFile) dest = NULL;
g_autofree gchar *dest_uri = NULL;
- char *basename;
- char *filename, *filename2, *new_filename;
- char *filename_base, *suffix;
- char *dest_fs_type;
+ g_autofree char *filename = NULL;
+ char *filename_base;
+ g_autofree char *dest_fs_type = NULL;
GError *error;
gboolean res;
gboolean filename_is_utf8;
@@ -7391,10 +7390,6 @@ create_task_thread_func (GTask *task,
handled_invalid_filename = FALSE;
- dest_fs_type = NULL;
- filename = NULL;
- dest = NULL;
-
max_length = get_max_name_length (job->dest_dir);
verify_destination (common,
@@ -7402,7 +7397,7 @@ create_task_thread_func (GTask *task,
NULL, -1);
if (job_aborted (common))
{
- goto aborted;
+ return;
}
filename = g_strdup (job->filename);
@@ -7423,11 +7418,10 @@ create_task_thread_func (GTask *task,
{
if (job->src != NULL)
{
+ g_autofree char *basename = NULL;
+
basename = g_file_get_basename (job->src);
- /* localizers: the initial name of a new template document */
filename = g_strdup_printf ("%s", basename);
-
- g_free (basename);
}
if (filename == NULL)
{
@@ -7509,13 +7503,11 @@ retry:
if (res && common->undo_info != NULL)
{
- gchar *uri;
+ g_autofree gchar *uri = NULL;
uri = g_file_get_uri (job->src);
nautilus_file_undo_info_create_set_data (NAUTILUS_FILE_UNDO_INFO_CREATE (common->undo_info),
dest, uri, 0);
-
- g_free (uri);
}
}
else
@@ -7600,6 +7592,8 @@ retry:
if (IS_IO_ERROR (error, INVALID_FILENAME) &&
!handled_invalid_filename)
{
+ g_autofree gchar *new_filename = NULL;
+
handled_invalid_filename = TRUE;
g_assert (dest_fs_type == NULL);
@@ -7611,6 +7605,9 @@ retry:
}
else
{
+ g_autofree char *filename2 = NULL;
+ g_autofree char *suffix = NULL;
+
filename_base = eel_filename_strip_extension (filename);
offset = strlen (filename_base);
suffix = g_strdup (filename + offset);
@@ -7627,9 +7624,6 @@ retry:
{
new_filename = g_strdup (filename2);
}
-
- g_free (filename2);
- g_free (suffix);
}
if (make_file_name_valid_for_dest_fs (new_filename, dest_fs_type))
@@ -7645,17 +7639,17 @@ retry:
dest = g_file_get_child (job->dest_dir, new_filename);
}
- g_free (new_filename);
g_error_free (error);
goto retry;
}
- g_free (new_filename);
}
if (IS_IO_ERROR (error, EXISTS))
{
- g_object_unref (dest);
- dest = NULL;
+ g_autofree char *suffix = NULL;
+ g_autofree gchar *filename2 = NULL;
+
+ g_clear_object (&dest);
filename_base = eel_filename_strip_extension (filename);
offset = strlen (filename_base);
suffix = g_strdup (filename + offset);
@@ -7664,6 +7658,8 @@ retry:
if (max_length > 0 && strlen (filename2) > max_length)
{
+ g_autofree char *new_filename = NULL;
+
new_filename = shorten_utf8_string (filename2, strlen (filename2) - max_length);
if (new_filename != NULL)
{
@@ -7681,8 +7677,6 @@ retry:
{
dest = g_file_get_child (job->dest_dir, filename2);
}
- g_free (filename2);
- g_free (suffix);
g_error_free (error);
goto retry;
}
@@ -7736,14 +7730,6 @@ retry:
}
}
}
-
-aborted:
- if (dest)
- {
- g_object_unref (dest);
- }
- g_free (filename);
- g_free (dest_fs_type);
}
void
@@ -7754,7 +7740,7 @@ nautilus_file_operations_new_folder (GtkWidget *parent_view,
NautilusCreateCallback done_callback,
gpointer done_callback_data)
{
- GTask *task;
+ g_autoptr (GTask) task = NULL;
CreateJob *job;
GtkWindow *parent_window;
@@ -7784,7 +7770,6 @@ nautilus_file_operations_new_folder (GtkWidget *parent_view,
task = g_task_new (NULL, job->common.cancellable, create_task_done, job);
g_task_set_task_data (task, job, NULL);
g_task_run_in_thread (task, create_task_thread_func);
- g_object_unref (task);
}
void
@@ -7796,7 +7781,7 @@ nautilus_file_operations_new_file_from_template (GtkWidget *parent_
NautilusCreateCallback done_callback,
gpointer done_callback_data)
{
- GTask *task;
+ g_autoptr (GTask) task = NULL;
CreateJob *job;
GtkWindow *parent_window;
@@ -7830,7 +7815,6 @@ nautilus_file_operations_new_file_from_template (GtkWidget *parent_
task = g_task_new (NULL, job->common.cancellable, create_task_done, job);
g_task_set_task_data (task, job, NULL);
g_task_run_in_thread (task, create_task_thread_func);
- g_object_unref (task);
}
void
@@ -7843,7 +7827,7 @@ nautilus_file_operations_new_file (GtkWidget *parent_view,
NautilusCreateCallback done_callback,
gpointer done_callback_data)
{
- GTask *task;
+ g_autoptr (GTask) task = NULL;
CreateJob *job;
GtkWindow *parent_window;
@@ -7874,7 +7858,6 @@ nautilus_file_operations_new_file (GtkWidget *parent_view,
task = g_task_new (NULL, job->common.cancellable, create_task_done, job);
g_task_set_task_data (task, job, NULL);
g_task_run_in_thread (task, create_task_thread_func);
- g_object_unref (task);
}