From a43f2ba01030bd603c3e2dc4cf1bb257ab1a6bf5 Mon Sep 17 00:00:00 2001 From: Kristian Rietveld Date: Sun, 11 Sep 2011 12:02:12 +0200 Subject: [PATCH] gtktreemodelfilter: fix small bug in prune level gtk_tree_model_filter_prune_level() should drop all internal reference counts as well for nodes which are going to be removed from the sequence. --- gtk/gtktreemodelfilter.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gtk/gtktreemodelfilter.c b/gtk/gtktreemodelfilter.c index a8795fb8d..d88702c29 100644 --- a/gtk/gtktreemodelfilter.c +++ b/gtk/gtktreemodelfilter.c @@ -1088,6 +1088,12 @@ gtk_tree_model_filter_prune_level (GtkTreeModelFilter *filter, while (elt->ext_ref_count > 0) gtk_tree_model_filter_real_unref_node (GTK_TREE_MODEL (filter), &f_iter, TRUE, TRUE); + /* In this case, we do remove reference counts we've added ourselves, + * since the node will be removed from the data structures. + */ + while (elt->ref_count > 0) + gtk_tree_model_filter_real_unref_node (GTK_TREE_MODEL (filter), + &f_iter, FALSE, TRUE); if (elt->visible_siter) { -- 2.43.2