From bce2a5173de6dea42d7cfeee88ab84f8cc6c95b0 Mon Sep 17 00:00:00 2001 From: Kristian Rietveld Date: Thu, 30 Jul 2009 14:35:09 +0200 Subject: [PATCH] =?UTF-8?q?Bug=20573321=20=E2=80=93=20additional=20check?= =?UTF-8?q?=20in=20gtk=5Ftree=5Fmodel=5Ffilter=5Fconvert=5F*?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added checks to see whether the passed iterators are not the same in convert_child_iter_to_iter() and iter_to_child_iter() functions in both the sort and filter models. Fixes bug 573321, suggestion by Vadim Godunko. --- gtk/gtktreemodelfilter.c | 2 ++ gtk/gtktreemodelsort.c | 2 ++ 2 files changed, 4 insertions(+) diff --git a/gtk/gtktreemodelfilter.c b/gtk/gtktreemodelfilter.c index cc5b86ebba..c865fccd5d 100644 --- a/gtk/gtktreemodelfilter.c +++ b/gtk/gtktreemodelfilter.c @@ -3037,6 +3037,7 @@ gtk_tree_model_filter_convert_child_iter_to_iter (GtkTreeModelFilter *filter, g_return_val_if_fail (filter->priv->child_model != NULL, FALSE); g_return_val_if_fail (filter_iter != NULL, FALSE); g_return_val_if_fail (child_iter != NULL, FALSE); + g_return_val_if_fail (filter_iter != child_iter, FALSE); filter_iter->stamp = 0; @@ -3076,6 +3077,7 @@ gtk_tree_model_filter_convert_iter_to_child_iter (GtkTreeModelFilter *filter, g_return_if_fail (child_iter != NULL); g_return_if_fail (filter_iter != NULL); g_return_if_fail (filter_iter->stamp == filter->priv->stamp); + g_return_if_fail (filter_iter != child_iter); if (GTK_TREE_MODEL_FILTER_CACHE_CHILD_ITERS (filter)) { diff --git a/gtk/gtktreemodelsort.c b/gtk/gtktreemodelsort.c index 1dbdda41f8..4525bca8b1 100644 --- a/gtk/gtktreemodelsort.c +++ b/gtk/gtktreemodelsort.c @@ -2084,6 +2084,7 @@ gtk_tree_model_sort_convert_child_iter_to_iter (GtkTreeModelSort *tree_model_sor g_return_val_if_fail (tree_model_sort->child_model != NULL, FALSE); g_return_val_if_fail (sort_iter != NULL, FALSE); g_return_val_if_fail (child_iter != NULL, FALSE); + g_return_val_if_fail (sort_iter != child_iter, FALSE); sort_iter->stamp = 0; @@ -2182,6 +2183,7 @@ gtk_tree_model_sort_convert_iter_to_child_iter (GtkTreeModelSort *tree_model_sor g_return_if_fail (tree_model_sort->child_model != NULL); g_return_if_fail (child_iter != NULL); g_return_if_fail (VALID_ITER (sorted_iter, tree_model_sort)); + g_return_if_fail (sorted_iter != child_iter); if (GTK_TREE_MODEL_SORT_CACHE_CHILD_ITERS (tree_model_sort)) {