[libvirt] [PATCH 8/8] interface: Introduce virInterfaceObjNew

Michal Privoznik mprivozn at redhat.com
Sun May 21 06:38:30 UTC 2017


On 05/20/2017 01:26 PM, John Ferlan wrote:
> 
> 
> On 05/19/2017 11:29 AM, Michal Privoznik wrote:
>> On 04/26/2017 12:36 AM, John Ferlan wrote:
>>> Create/use a helper to perform the object allocation
>>>
>>> Signed-off-by: John Ferlan <jferlan at redhat.com>
>>> ---
>>>  src/conf/virinterfaceobj.c | 31 +++++++++++++++++++++++--------
>>>  1 file changed, 23 insertions(+), 8 deletions(-)
>>>
>>> diff --git a/src/conf/virinterfaceobj.c b/src/conf/virinterfaceobj.c
>>> index 1cc5c92..4463653 100644
>>> --- a/src/conf/virinterfaceobj.c
>>> +++ b/src/conf/virinterfaceobj.c
>>> @@ -46,6 +46,27 @@ struct _virInterfaceObjList {
>>>  
>>>  /* virInterfaceObj manipulation */
>>>  
>>> +static virInterfaceObjPtr
>>> +virInterfaceObjNew(void)
>>> +{
>>> +    virInterfaceObjPtr obj;
>>> +
>>> +    if (VIR_ALLOC(obj) < 0)
>>> +        return NULL;
>>> +
>>> +    if (virMutexInit(&obj->lock) < 0) {
>>> +        virReportError(VIR_ERR_INTERNAL_ERROR,
>>> +                       "%s", _("cannot initialize mutex"));
>>> +        VIR_FREE(obj);
>>> +        return NULL;
>>> +    }
>>> +
>>> +    virInterfaceObjLock(obj);
>>> +
>>> +    return obj;
>>> +}
>>> +
>>> +
>>
>>
>> Any reason why virInterfaceObj can't actually be an virObject?
>> virInterfaceObjLock() is so 0.9.X release-y.
>>
>> Michal
>>
> 
> I thought I tried that once - one large leap for mankind, but was asked
> to show all the tiny steps it took me to get there ;-)

Right.

> 
> Also I didn't want the "overhead" of converting it to a virObject only
> to convert it later to the newer object. I mean I could now, but I have
> this goal of making all these driver objects use the same object around
> the same time. Some convert more easily since they already use virObject
> - others are a bit more effort.
> 
> Still even if I convert it to a virObject now, that's not going to be
> done in "this" patch...

Fair enough. It's just that whenever I see virSomethinObj I expect it to
be derived from virObject. Thus I can use virObject APIs.
And as for the "overhead" - I think that it'll be goot if all the
objects that you will make use the new "listable" object (or whatever it
is going to be called) already have common ground => are virObject
already (or something derived from it). At least that's how I view these
patches. What do you think? Here's the deal, I'll give you ACK on this
and you'll send 9/8 to convert this to actual virObject?

Michal




More information about the libvir-list mailing list