On 05/05/2015 18:06, Eduardo Habkost wrote:
> On Fri, May 01, 2015 at 08:15:24PM +0200, Paolo Bonzini wrote:
>> > On 01/05/2015 16:09, Eduardo Habkost wrote:
>>> > > +void object_property_add_const_link(Object *obj, const char *name,
>>> > > +                                       const char *type, Object *child,
>>> > > +                                       ObjectPropertyLinkFlags flags,
>>> > > +                                       Error **errp)
>>> > > +{
>>> > > +    Object **childp = g_new0(Object*, 1);
>>> > > +
>>> > > +    *childp = child;
>>> > > +    object_property_add_link(obj, name, type, childp, NULL,
>>> > > +                             flags | OBJ_PROP_LINK_FREE_CHILD_POINTER, 
>>> > > errp);
>>> > > +}
>>> > > +
>> > 
>> > This works, but is the extra functionality needed, compared to
>> > an alias?  Namely, when is flags going to be != 0?
> Flags is going to be != 0 if the caller grabs a reference to the target
> object (to ensure it won't disappear) and wants it to be automatically
> dropped when the property is removed. It is not strictly necessary, but
> I thought it could be useful.
> 
> But to be honest, I don't love the flags argument in
> object_property_add_link(), either. I mean: why do we need flags in
> object_property_add_link() and not in object_property_add_alias()?
> 
>> > 
>> > FWIW, here is my ./.. patch.  I'm all for adding a helper like
>> > object_property_add_const_link on top if we go for it.
> Looks good to me.
> 
>> > 
>> > Another possibility is to not introduce any of our patches and reuse
>> > the child<> getter and resolve functions in
>> > object_property_add_const_link.
> Using the "." property would allow object_property_add_const_link() to
> be a one-liner, so it sounds better to me.
> 

You don't need this function anymore though, right?  So I'll just adjust
my series to use object_property_add_const_link().

Paolo

Reply via email to