Paolo Bonzini <pbonz...@redhat.com> writes: > On 02/05/2018 08:34, Markus Armbruster wrote: >> Alexey Kardashevskiy <a...@ozlabs.ru> writes: >> >>> On 30/4/18 7:39 pm, Paolo Bonzini wrote: >>>> On 30/04/2018 08:52, Alexey Kardashevskiy wrote: >>>>> diff --git a/qapi/misc.json b/qapi/misc.json >>>>> index 5636f4a..399ec74 100644 >>>>> --- a/qapi/misc.json >>>>> +++ b/qapi/misc.json >>>>> @@ -1491,6 +1491,10 @@ >>>>> # >>>>> # List properties associated with a device. >>>>> # >>>>> +# Note: the handler creates a device object, enumerates properties and >>>>> destroys >>>>> +# the object so it only lists properties defined in DeviceClass::props or >>>>> +# created by DeviceClass::init()/TypeInfo::instance_init(). >>>>> +# >>>>> # @typename: the type name of a device >>>>> # >>>>> # Returns: a list of ObjectPropertyInfo describing a devices properties >>>>> @@ -1506,6 +1510,11 @@ >>>>> # >>>>> # List properties associated with a QOM object. >>>>> # >>>>> +# Note: the handler creates an object, enumerates properties and destroys >>>>> +# the object so it only lists properties created in >>>>> TypeInfo::instance_init(). >>>>> +# Since the instance_init() callback of the device object adds >>>>> +# DeviceClass::props as object properties, they will be listed as well. >>>>> +# >>>> >>>> This says what it does, but not why it is a problem. Can you explain >>>> that to me as well? >>> >>> It probably is not unless someone adds properties in realize() callback, >> >> Now work that into the doc comment, please :) > > Are there any examples?
There must be examples where instances of the same type have different properties, or else our design decision to create properties dynamically was inane. [...]