From eeccdcb8291810cc8e5dc30a3a6bbb2ecf396a78 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Wed, 18 Feb 2004 23:42:46 +0000 Subject: [PATCH] Improve the efficiency here by prepending on the list and reverting it Thu Feb 19 00:45:02 2004 Matthias Clasen * gtk/gtktreeselection.c (gtk_tree_selection_get_selected_rows): Improve the efficiency here by prepending on the list and reverting it after the loop. (#133435, Christian Biere) --- ChangeLog | 6 ++++++ ChangeLog.pre-2-10 | 6 ++++++ ChangeLog.pre-2-4 | 6 ++++++ ChangeLog.pre-2-6 | 6 ++++++ ChangeLog.pre-2-8 | 6 ++++++ gtk/gtktreeselection.c | 8 +++++--- 6 files changed, 35 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3795cc1dea..d014d0fb9c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Thu Feb 19 00:45:02 2004 Matthias Clasen + + * gtk/gtktreeselection.c (gtk_tree_selection_get_selected_rows): + Improve the efficiency here by prepending on the list and reverting + it after the loop. (#133435, Christian Biere) + Thu Feb 19 00:32:21 2004 Matthias Clasen * gtk/gtkplug.c (_gtk_plug_remove_from_socket): Avoid errors when diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 3795cc1dea..d014d0fb9c 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,9 @@ +Thu Feb 19 00:45:02 2004 Matthias Clasen + + * gtk/gtktreeselection.c (gtk_tree_selection_get_selected_rows): + Improve the efficiency here by prepending on the list and reverting + it after the loop. (#133435, Christian Biere) + Thu Feb 19 00:32:21 2004 Matthias Clasen * gtk/gtkplug.c (_gtk_plug_remove_from_socket): Avoid errors when diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 3795cc1dea..d014d0fb9c 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,9 @@ +Thu Feb 19 00:45:02 2004 Matthias Clasen + + * gtk/gtktreeselection.c (gtk_tree_selection_get_selected_rows): + Improve the efficiency here by prepending on the list and reverting + it after the loop. (#133435, Christian Biere) + Thu Feb 19 00:32:21 2004 Matthias Clasen * gtk/gtkplug.c (_gtk_plug_remove_from_socket): Avoid errors when diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 3795cc1dea..d014d0fb9c 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,9 @@ +Thu Feb 19 00:45:02 2004 Matthias Clasen + + * gtk/gtktreeselection.c (gtk_tree_selection_get_selected_rows): + Improve the efficiency here by prepending on the list and reverting + it after the loop. (#133435, Christian Biere) + Thu Feb 19 00:32:21 2004 Matthias Clasen * gtk/gtkplug.c (_gtk_plug_remove_from_socket): Avoid errors when diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 3795cc1dea..d014d0fb9c 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,9 @@ +Thu Feb 19 00:45:02 2004 Matthias Clasen + + * gtk/gtktreeselection.c (gtk_tree_selection_get_selected_rows): + Improve the efficiency here by prepending on the list and reverting + it after the loop. (#133435, Christian Biere) + Thu Feb 19 00:32:21 2004 Matthias Clasen * gtk/gtkplug.c (_gtk_plug_remove_from_socket): Avoid errors when diff --git a/gtk/gtktreeselection.c b/gtk/gtktreeselection.c index 67c37ef359..94cd4b1d84 100644 --- a/gtk/gtktreeselection.c +++ b/gtk/gtktreeselection.c @@ -474,7 +474,7 @@ gtk_tree_selection_get_selected_rows (GtkTreeSelection *selection, do { if (GTK_RBNODE_FLAG_SET (node, GTK_RBNODE_IS_SELECTED)) - list = g_list_append (list, gtk_tree_path_copy (path)); + list = g_list_prepend (list, gtk_tree_path_copy (path)); if (node->children) { @@ -506,7 +506,8 @@ gtk_tree_selection_get_selected_rows (GtkTreeSelection *selection, if (!tree) { gtk_tree_path_free (path); - return list; + + goto done; } gtk_tree_path_up (path); @@ -519,7 +520,8 @@ gtk_tree_selection_get_selected_rows (GtkTreeSelection *selection, gtk_tree_path_free (path); - return list; + done: + return g_list_reverse (list); } static void