Question: How should (transfer) work for properties?
I didn't see this documented anywhere, and at least working on some fixes for pygi/gjs, this was unclear to me, hence the reason why I'm asking here.
Say for instance, I have a property as follows:
/**
* Object:array: (transfer full)
*/
g_object_install_property (obj, PROP_ARRAY,
g_param_spec_boxed ("array",
"Array",
"Array prop",
G_TYPE_ARRAY));
Does transfer full here mean:
(a) set_property consumes the ref from the caller? (b) get_property adds a new ref to the property value before returning it? (c) both?
My intuition tells me that (b) is the most sensible (this allows the object to generate some value when the property is accessed), but the ambiguity of the situation tells me that (c) is an equally probable interpretation.
Ideally one should be picked and this should be documented somewhere, then tests should be added to the language bindings.