GNOME Bugzilla – Bug 544794
GtkTreeModelFilter uses a path without checking, which gives a warning -- in pretty often called function
Last modified: 2009-02-07 04:12:17 UTC
I got a series of : (ekiga:2125): Gtk-CRITICAL **: gtk_tree_model_row_has_child_toggled: assertion `path != NULL' failed several time today -- the strange thing is that it doesn't always happen : some run just keep on spitting those, some run just go fine. Running with --g-fatal-warnings in gdb will help find the problem
Ok, I got a stack but I'm not fresh enough to find the problem for it... it seems the warning comes from the gtk_tree_store_remove call in roster-view-gtk.cpp's on_presentity_updated :
+ Trace 203818
Ok, I poked around and found the problem is in gtk+ : in gtk_tree_model_filter_row_deleted, a path is obtained using gtk_tree_model_get_path, and used unchecked to call gtk_tree_model_row_has_child_toggled ; the problem being that when called on an invisible element, gtk_tree_model_filter_get_path (the implementation of gtk_tree_model_get_path which gets called) just returns NULL.
Created attachment 115413 [details] [review] Patch which should solve the issue This patch just checks for NULL before calling gtk_tree_model_row_has_child_toggled.
This problem is similar to Bug 464173.
This is the same problem as bug #464173. In the test case at bug #464173 the gtk_tree_model_filter_refilter() causes a row remove, in the above stack trace the row remove happens explicitly. *** This bug has been marked as a duplicate of 464173 ***