[gtk/blue-rose-fix] gtktreeview: Fix child access after TEST_EXPAND_ROW




commit 4325c200137f4391cff24398251f37b255387ae3
Author: Thomas Holder <thomas thomas-holder de>
Date:   Tue Sep 22 09:27:29 2020 +0200

    gtktreeview: Fix child access after TEST_EXPAND_ROW
    
    In gtk_tree_view_build_tree with recurse=TRUE, the TEST_EXPAND_ROW
    signal might invalidate the child iterator. Getting the iterator after
    the signal (instead of before) fixes the issue.
    
    Fixes https://gitlab.com/inkscape/inkscape/-/issues/1879

 gtk/gtktreeview.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
---
diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c
index e9f6c12327..315360c683 100644
--- a/gtk/gtktreeview.c
+++ b/gtk/gtktreeview.c
@@ -8616,13 +8616,13 @@ gtk_tree_view_build_tree (GtkTreeView   *tree_view,
          else
            gtk_tree_path_next (path);
 
-         if (gtk_tree_model_iter_children (priv->model, &child, iter))
+         if (gtk_tree_model_iter_has_child (priv->model, iter))
            {
              gboolean expand;
 
              g_signal_emit (tree_view, tree_view_signals[TEST_EXPAND_ROW], 0, iter, path, &expand);
 
-             if (gtk_tree_model_iter_has_child (priv->model, iter)
+             if (gtk_tree_model_iter_children (priv->model, &child, iter)
                  && !expand)
                {
                  temp->children = gtk_tree_rbtree_new ();


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