[gtk/gtk-3-24: 1/2] gtktreeview: Fix child access after TEST_EXPAND_ROW
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/gtk-3-24: 1/2] gtktreeview: Fix child access after TEST_EXPAND_ROW
- Date: Wed, 23 Sep 2020 11:50:50 +0000 (UTC)
commit e35378ba3712b6d01b8cd34a732d49ca2e269350
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 20f09ef48d..704702cb97 100644
--- a/gtk/gtktreeview.c
+++ b/gtk/gtktreeview.c
@@ -9622,13 +9622,13 @@ gtk_tree_view_build_tree (GtkTreeView *tree_view,
else
gtk_tree_path_next (path);
- if (gtk_tree_model_iter_children (tree_view->priv->model, &child, iter))
+ if (gtk_tree_model_iter_has_child (tree_view->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 (tree_view->priv->model, iter)
+ if (gtk_tree_model_iter_children (tree_view->priv->model, &child, iter)
&& !expand)
{
temp->children = _gtk_rbtree_new ();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]