GNOME Bugzilla – Bug 784705
Getting "CRITICAL **: gee_iterable_iterator: assertion 'self != NULL' failed" when running valadoc
Last modified: 2017-11-22 21:20:40 UTC
Created attachment 355183 [details] [review] valadoc: fix CRITICAL when property is not a GType property When I run valadoc on a vapi I created, I see a bunch of this... ** (valadoc:19818): CRITICAL **: gee_iterator_next: assertion 'self != NULL' failed ** (valadoc:19818): CRITICAL **: gee_iterable_iterator: assertion 'self != NULL' failed ** (valadoc:19818): CRITICAL **: gee_iterator_next: assertion 'self != NULL' failed ** (valadoc:19818): CRITICAL **: gee_iterable_iterator: assertion 'self != NULL' failed ** (valadoc:19818): CRITICAL **: gee_iterator_next: assertion 'self != NULL' failed ** (valadoc:19818): CRITICAL **: gee_iterable_iterator: assertion 'self != NULL' failed ** (valadoc:19818): CRITICAL **: gee_iterator_next: assertion 'self != NULL' failed --- Running with gdb, I traced it down to Valadoc.CTypeResolver.visit_property(). It is apparent there that the foreach loops can run without the iterator variables being initialized.
Adding a guard for this case seems reasonable to do. Nonetheless the root-cause of this issue should be treated as well. Could you apply the patch of https://bugzilla.gnome.org/show_bug.cgi?id=693932 and compile your source.
I removed my patch and applied the patch from #693932, but I could not see a difference - I still got the CRITICAL messages. FWIW, I am using a .vapi that has many compact classes where I am using "properties" as a shortcut for getter methods, but there are not real GObject properties.
Created attachment 364100 [details] [review] valadoc: Acknowledge possible fake properties in structs