Il 19/02/2013 05:02, Peter Crosthwaite ha scritto: > num_interfaces only tells you how many interfaces the concrete child class has > (as defined in the TypeInfo). This means if you have a child class which > defines > no interfaces of its own, but its parent has interfaces you cannot cast to > those > parent interfaces. > > Fixed changing the guard to check the class->interfaces list instead (which is > a complete flattened list of implemented interfaces). > > Signed-off-by: Peter Crosthwaite <peter.crosthwa...@xilinx.com> > --- > changed from v1: > Change guard implementation rather than removed it (Paolo review) > > qom/object.c | 3 ++- > 1 files changed, 2 insertions(+), 1 deletions(-) > > diff --git a/qom/object.c b/qom/object.c > index 4b72a64..3d638ff 100644 > --- a/qom/object.c > +++ b/qom/object.c > @@ -449,7 +449,8 @@ ObjectClass *object_class_dynamic_cast(ObjectClass *class, > TypeImpl *type = class->type; > ObjectClass *ret = NULL; > > - if (type->num_interfaces && type_is_ancestor(target_type, > type_interface)) { > + if (type->class->interfaces && > + type_is_ancestor(target_type, type_interface)) { > int found = 0; > GSList *i; > >
Series looks good, thanks! Paolo