summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlexandru Pandelea <alexandru.pandelea@gmail.com>2016-10-16 21:24:06 +0300
committerAlexandru Pandelea <alexandru.pandelea@gmail.com>2016-10-26 20:26:35 +0300
commit6cc8fdedf68dec159f18cee7039ce0b8b5c1a77a (patch)
tree80eb5366a4448c6e75620991460f5806081af6a4 /src
parentd782a133b520b6204e4f79eaa3ec993cd0f80c5f (diff)
downloadnautilus-6cc8fdedf68dec159f18cee7039ce0b8b5c1a77a.tar.gz
file-undo-operations: use g_list_prepend instead of g_list_append
Use g_list_prepend and then reverse the list instead of using g_list_append, to improve the time complexity.
Diffstat (limited to 'src')
-rw-r--r--src/nautilus-file-undo-operations.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/nautilus-file-undo-operations.c b/src/nautilus-file-undo-operations.c
index 02508f43e..61a789d0e 100644
--- a/src/nautilus-file-undo-operations.c
+++ b/src/nautilus-file-undo-operations.c
@@ -1146,9 +1146,11 @@ batch_rename_redo_func (NautilusFileUndoInfo *info,
old_file = l->data;
file = nautilus_file_get (old_file);
- files = g_list_append (files, file);
+ files = g_list_prepend (files, file);
}
+ files = g_list_reverse (files);
+
for (l1 = self->priv->new_display_names, l2 = files; l1 != NULL && l2 != NULL; l1 = l1->next, l2 = l2->next)
{
old_file_name = nautilus_file_get_name (NAUTILUS_FILE (l2->data));
@@ -1223,9 +1225,11 @@ batch_rename_undo_func (NautilusFileUndoInfo *info,
new_file = l->data;
file = nautilus_file_get (new_file);
- files = g_list_append (files, file);
+ files = g_list_prepend (files, file);
}
+ files = g_list_reverse (files);
+
for (l1 = self->priv->old_display_names, l2 = files; l1 != NULL && l2 != NULL; l1 = l1->next, l2 = l2->next)
{
old_file_name = nautilus_file_get_name (NAUTILUS_FILE (l2->data));
@@ -1362,8 +1366,10 @@ nautilus_file_undo_info_batch_rename_set_data_pre (NautilusFileUndoInfoBatchRena
old_name = g_string_new (g_file_get_basename (file));
- self->priv->old_display_names = g_list_append (self->priv->old_display_names, old_name);
+ self->priv->old_display_names = g_list_prepend (self->priv->old_display_names, old_name);
}
+
+ self->priv->old_display_names = g_list_reverse (self->priv->old_display_names);
}
void
@@ -1383,8 +1389,10 @@ nautilus_file_undo_info_batch_rename_set_data_post (NautilusFileUndoInfoBatchRen
new_name = g_string_new (g_file_get_basename (file));
- self->priv->new_display_names = g_list_append (self->priv->new_display_names, new_name);
+ self->priv->new_display_names = g_list_prepend (self->priv->new_display_names, new_name);
}
+
+ self->priv->new_display_names = g_list_reverse (self->priv->new_display_names);
}
/* trash */