Support Property.set_default and PropertyInfo.description even if PropertyInfo.create is set.
Signed-off-by: Eduardo Habkost <ehabk...@redhat.com> --- Cc: Paolo Bonzini <pbonz...@redhat.com> Cc: "Daniel P. Berrangé" <berra...@redhat.com> Cc: Eduardo Habkost <ehabk...@redhat.com> Cc: qemu-devel@nongnu.org --- hw/core/qdev-properties.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index 89e292dc25..ad685f371d 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -912,24 +912,25 @@ void qdev_property_add_static(DeviceState *dev, Property *prop) static void qdev_class_add_property(DeviceClass *klass, Property *prop) { ObjectClass *oc = OBJECT_CLASS(klass); + ObjectProperty *op; if (prop->info->create) { - prop->info->create(oc, prop); + op = prop->info->create(oc, prop); } else { - ObjectProperty *op; - op = object_class_property_add(oc, prop->name, prop->info->name, static_prop_getter(prop->info), static_prop_setter(prop->info), prop->info->release, prop); - if (prop->set_default) { - prop->info->set_default_value(op, prop); - } } - object_class_property_set_description(oc, prop->name, - prop->info->description); + if (prop->set_default) { + prop->info->set_default_value(op, prop); + } + if (prop->info->description) { + object_class_property_set_description(oc, prop->name, + prop->info->description); + } } /** -- 2.28.0