qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [RFC v0 5/8] object: make interfaces concrete


From: Andreas Färber
Subject: Re: [Qemu-devel] [RFC v0 5/8] object: make interfaces concrete
Date: Wed, 13 Jun 2012 12:28:05 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20120421 Thunderbird/12.0

Am 13.06.2012 12:03, schrieb Paolo Bonzini:
> Il 13/06/2012 11:38, Peter A. G. Crosthwaite ha scritto:
>> Objects that define interface delegate the creation of the interface object
>> to the interface type. These means that object_new() when called recursively 
>> by

I am pretty certain that object_new() is NOT called recursively! The
static helpers of object_instantiate() are, and abstractness should not
matter there or none of the, e.g., CPU subclasses could be created... So
if there is a problem this description is bogus.

>> the interface instantior is going to bork because its trying to instantiate
>> an abstract type. Fixed by making interface types concrete.
>>
>> Signed-off-by: Peter A. G. Crosthwaite <address@hidden>
>> ---
>>  qom/object.c |    2 +-
>>  1 files changed, 1 insertions(+), 1 deletions(-)
>>
>> diff --git a/qom/object.c b/qom/object.c
>> index 1eba795..c3a7a47 100644
>> --- a/qom/object.c
>> +++ b/qom/object.c
>> @@ -191,7 +191,7 @@ static void type_class_interface_init(TypeImpl *ti, 
>> InterfaceImpl *iface)
>>          .parent = iface->parent,
>>          .class_size = sizeof(InterfaceClass),
>>          .class_init = iface->interface_initfn,
>> -        .abstract = true,
>> +        .abstract = false,
>>      };
>>      char *name = g_strdup_printf("<%s::%s>", ti->name, iface->parent);
>>  
>>
> 
> Reviewed-by: Paolo Bonzini <address@hidden>

Why? Object is abstract, too, and in patch 3/8 a type is being derived
from TYPE_INTERFACE. So if we want to make interface non-abstract then
we don't need the Container type either since it is simply the
non-abstract version of Object. My guess is that, if at all, something
else is going wrong and this is papering over it.

Andreas

-- 
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg



reply via email to

[Prev in Thread] Current Thread [Next in Thread]