GNOME Bugzilla – Bug 722058
GtkTreeModelFilter bug
Last modified: 2014-03-27 02:26:14 UTC
In gtk/gtktreemodelfilter.c there is line 2699 of the master: real_path = gtk_tree_model_filter_remove_root (c_path, filter->priv->root); This line should be real_path = gtk_tree_model_filter_remove_root (c_path, filter->priv->virtual_root); The string "virtual" was really very virtual :-) filter->priv->root is undefined(or might be undefined) at the time of calling gtk_tree_model_filter_remove_root(), so it defaults to random large number. When it is positive, everything works somehow, when it is negative, then we have crash... usually. I am having this issue on MacOSX, however, it should cause problems also on other platforms. Andrius
This can sometimes be reproduced in bluefish, indeed during delete on a row in the underlying treestore. Causes a segfault, so 'critical' in my opinion.
Created attachment 266473 [details] [review] treemodelfilter: Fix using wrong path on row-deleted A "typo" led to using a wrong GtkTreePath when converting the path of the virtual root to check the ancestors, which would lead to either no checks being performed, or maybe segfaulting when using an invalid path as result.
Review of attachment 266473 [details] [review]: looks okay; it would be great to have a test case for the GtkTreeModelFilter that allows us to catch regressions of this type.
I'm going to leave this until after .0 at this point
Attachment 266473 [details] pushed as 5c019bd - treemodelfilter: Fix using wrong path on row-deleted