qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v4 1/5] qom: Add interface check in object_class


From: Markus Armbruster
Subject: Re: [Qemu-devel] [PATCH v4 1/5] qom: Add interface check in object_class_is_abstract
Date: Thu, 03 Nov 2016 19:18:08 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)

Lin Ma <address@hidden> writes:

> Signed-off-by: Lin Ma <address@hidden>
> ---
>  qom/object.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/qom/object.c b/qom/object.c
> index 7a05e35..4096645 100644
> --- a/qom/object.c
> +++ b/qom/object.c
> @@ -747,7 +747,11 @@ ObjectClass *object_get_class(Object *obj)
>  
>  bool object_class_is_abstract(ObjectClass *klass)
>  {
> -    return klass->type->abstract;
> +    if (type_is_ancestor(klass->type, type_interface)) {
> +        return true;
> +    } else {
> +        return klass->type->abstract;
> +    }
>  }
>  
>  const char *object_class_get_name(ObjectClass *klass)

Pardon my ignorance...

If all types derived from type_interface are abstract, why aren't we
setting ->abstract right when such a type is defined?

Hmm, perhaps we do?  type_initialize_interface() sets info.abstract =
true...

In case we don't: what about other uses of ->abstract?  Why is it okay
not to check whether type_interface is an ancestore there?



reply via email to

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