From a3045c84efae261c03ddde84df7f4ecf03a4c97b Mon Sep 17 00:00:00 2001 From: Kristian Rietveld Date: Wed, 17 Apr 2002 22:26:44 +0000 Subject: [PATCH] so this function was completely broken. Fix it and improve readability. Thu Apr 18 00:23:31 2002 Kristian Rietveld * gtk/gtktreemodelsort.c (gtk_tree_model_sort_convert_path_to_child_path): so this function was completely broken. Fix it and improve readability. --- ChangeLog | 6 ++++++ ChangeLog.pre-2-10 | 6 ++++++ ChangeLog.pre-2-2 | 6 ++++++ ChangeLog.pre-2-4 | 6 ++++++ ChangeLog.pre-2-6 | 6 ++++++ ChangeLog.pre-2-8 | 6 ++++++ gtk/gtktreemodelsort.c | 17 ++++++++++++----- 7 files changed, 48 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 80579d8017..af555d69f0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Thu Apr 18 00:23:31 2002 Kristian Rietveld + + * gtk/gtktreemodelsort.c + (gtk_tree_model_sort_convert_path_to_child_path): so this function + was completely broken. Fix it and improve readability. + 2002-04-17 Anders Carlsson * tests/testtreeedit.c (button_press_event): Add a small diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 80579d8017..af555d69f0 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,9 @@ +Thu Apr 18 00:23:31 2002 Kristian Rietveld + + * gtk/gtktreemodelsort.c + (gtk_tree_model_sort_convert_path_to_child_path): so this function + was completely broken. Fix it and improve readability. + 2002-04-17 Anders Carlsson * tests/testtreeedit.c (button_press_event): Add a small diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index 80579d8017..af555d69f0 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,9 @@ +Thu Apr 18 00:23:31 2002 Kristian Rietveld + + * gtk/gtktreemodelsort.c + (gtk_tree_model_sort_convert_path_to_child_path): so this function + was completely broken. Fix it and improve readability. + 2002-04-17 Anders Carlsson * tests/testtreeedit.c (button_press_event): Add a small diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 80579d8017..af555d69f0 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,9 @@ +Thu Apr 18 00:23:31 2002 Kristian Rietveld + + * gtk/gtktreemodelsort.c + (gtk_tree_model_sort_convert_path_to_child_path): so this function + was completely broken. Fix it and improve readability. + 2002-04-17 Anders Carlsson * tests/testtreeedit.c (button_press_event): Add a small diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 80579d8017..af555d69f0 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,9 @@ +Thu Apr 18 00:23:31 2002 Kristian Rietveld + + * gtk/gtktreemodelsort.c + (gtk_tree_model_sort_convert_path_to_child_path): so this function + was completely broken. Fix it and improve readability. + 2002-04-17 Anders Carlsson * tests/testtreeedit.c (button_press_event): Add a small diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 80579d8017..af555d69f0 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,9 @@ +Thu Apr 18 00:23:31 2002 Kristian Rietveld + + * gtk/gtktreemodelsort.c + (gtk_tree_model_sort_convert_path_to_child_path): so this function + was completely broken. Fix it and improve readability. + 2002-04-17 Anders Carlsson * tests/testtreeedit.c (button_press_event): Add a small diff --git a/gtk/gtktreemodelsort.c b/gtk/gtktreemodelsort.c index 038251d5b8..fb6aee381e 100644 --- a/gtk/gtktreemodelsort.c +++ b/gtk/gtktreemodelsort.c @@ -1964,19 +1964,26 @@ gtk_tree_model_sort_convert_path_to_child_path (GtkTreeModelSort *tree_model_sor for (i = 0; i < gtk_tree_path_get_depth (sorted_path); i++) { + gint count = sorted_indices[i]; + if ((level == NULL) || - (level->array->len <= sorted_indices[i])) + (level->array->len <= count)) { gtk_tree_path_free (retval); return NULL; } - if (g_array_index (level->array, SortElt, sorted_indices[i]).children == NULL) - gtk_tree_model_sort_build_level (tree_model_sort, level, &g_array_index (level->array, SortElt, sorted_indices[i])); + + if (g_array_index (level->array, SortElt, count).children == NULL) + gtk_tree_model_sort_build_level (tree_model_sort, level, &g_array_index (level->array, SortElt, count)); if (level == NULL) - break; + { + gtk_tree_path_free (retval); + break; + } - gtk_tree_path_append_index (retval, g_array_index (level->array, SortElt, i).offset); + gtk_tree_path_append_index (retval, g_array_index (level->array, SortElt, count).offset); + level = g_array_index (level->array, SortElt, count).children; } return retval;