[Vala] Bug 666728 - critical warning in libgee



Sorry for spamming but it seems that it's a bug without clear product
which is fully "responsible" for the problem (see Ryan's comment[1]). On
the other hand it affects all libgee newer then 0.4.0 release and hence
it is probably blocker on Gnome 3.4.

In summary the glib master become more restrictive when overriding
properties. The problem is diamond inheritance:

Gee.Collection <----------- Gee.List
        ^                     ^
        |                     |
        |                     |
Gee.AbstractCollection <--- Gee.AbstractList

which results in following errors:

  /ArrayList/[Collection] type correctness:                            
GLib-GObject-CRITICAL **: Read-only property 'read-only-view' on class
'GeeAbstractList' has type 'GeeCollection' which is not equal to or more
restrictive than the type 'GeeList' of the property on the interface
'GeeList'

I don't think I can fix on libgee side without breaking API/ABI (at
least I don't see it). I believe that because currently various GNOME
applications depends on libgee it means that bug effectively breaks
GNOME (by breaking for example gnome-shell or empathy).

As far as I understand possible fixes include:

 - Treating g_object_interface_install_property as override property if
interface have prerequisite
 - Change Vala to use g_object_class_install_property(s) instead of
g_object_class_override_property.
 - Change error into warning, remove it from libgee 0.7/0.8 and change
back into error when the old software die.

Regards

[1] https://bugzilla.gnome.org/show_bug.cgi?id=666728#c1




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