qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [RFC for-2.8] machine: Convert abstract typename on com


From: Cornelia Huck
Subject: Re: [Qemu-devel] [RFC for-2.8] machine: Convert abstract typename on compat_props to subclass names
Date: Mon, 12 Dec 2016 13:25:09 +0100

On Tue, 6 Dec 2016 17:31:59 -0200
Eduardo Habkost <address@hidden> wrote:

> What about this?
> 
> (untested)

Have not tested it either, but I think it looks good. Some nits below.

> 
> Signed-off-by: Eduardo Habkost <address@hidden>
> ---
>  hw/core/machine.c | 35 ++++++++++++++++++++++++++++++++---
>  1 file changed, 32 insertions(+), 3 deletions(-)
> 

> @@ -565,10 +584,20 @@ void machine_register_compat_props(MachineState 
> *machine)
>      }
> 
>      for (i = 0; i < mc->compat_props->len; i++) {
> +        ObjectClass *oc;

Move the declaration out of the loop?

>          p = g_array_index(mc->compat_props, GlobalProperty *, i);
> -        /* Machine compat_props must never cause errors: */
> -        p->errp = &error_abort;
> -        qdev_prop_register_global(p);
> +        oc = object_class_by_name(p->driver);
> +        if (oc && object_class_is_abstract(oc)) {
> +            /* temporary hack to make sure we will never override
> +             * globals set explicitly on -global: if an abstract class
> +             * is on compat_props, register globals for each of their
> +             * subclasses instead.
> +             */

I think this should not just be a 'temporary hack'... rather document
this behaviour for abstract classes?

> +            object_class_foreach(machine_register_compat_for_subclass,
> +                                 p->driver, false, p);
> +        } else {
> +            register_compat_prop(p->driver, p->property, p->value);
> +        }
>      }
>  }
> 




reply via email to

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