[gtk+] gtktreemodelfilter: fix small bug in prune level



commit a43f2ba01030bd603c3e2dc4cf1bb257ab1a6bf5
Author: Kristian Rietveld <kris gtk org>
Date:   Sun Sep 11 12:02:12 2011 +0200

    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 files changed, 6 insertions(+), 0 deletions(-)
---
diff --git a/gtk/gtktreemodelfilter.c b/gtk/gtktreemodelfilter.c
index a8795fb..d88702c 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)
         {



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]