Owen, > > * Memory management for AtkRelation/AtkRelationSet obviously > needs some thinking through. Does AtkRelation hold strong > references on the target? > > AtkRelation/AtkRelationSet either need to be value objects > that can be copied, or they need to be GObjects, These > are basically the only memory management models that work > for language bindings. > By strong references, do you mean that g_object_ref() has been called on the AtkObjects in the target? If so, the answer is no. Currently there is an AtkRelationSet member in AtkObject but it is not currently used. We may remove this soon if we decide to construct the relation set when atk_object_get_relation_set() is called. My preference is that the caller of atk_object_get_relation_set() should call g_object_unref() when finished with the relation set. In that acsae should we rename atk_object_get_relation_set to atk_object_ref_relation_set? I have reimplemented AtkRelation and AtkRelationSet as GObjects; tar ball containing diffs and new source files is attached. Comments welcome. Padraig
Attachment:
atkpatch.tar.gz
Description: atkpatch.tar.gz