[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 41/53] qdev: Make object_property_add_field() copy the Propert
|
From: |
Eduardo Habkost |
|
Subject: |
[PATCH v3 41/53] qdev: Make object_property_add_field() copy the Property struct |
|
Date: |
Thu, 12 Nov 2020 16:43:38 -0500 |
This will make the function more convenient to use, and allow
us to reuse it for array element properties.
I'm not adding a version of this function that doesn't copy the
struct, because this function isn't supposed to be used widely.
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
This is a new patch added in v3 of the series.
---
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: "Daniel P. Berrangé" <berrange@redhat.com>
Cc: Eduardo Habkost <ehabkost@redhat.com>
Cc: qemu-devel@nongnu.org
---
hw/core/qdev-properties.c | 18 ++++++++++--------
1 file changed, 10 insertions(+), 8 deletions(-)
diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c
index d5773ffd8a..451bb54cf6 100644
--- a/hw/core/qdev-properties.c
+++ b/hw/core/qdev-properties.c
@@ -828,21 +828,23 @@ object_property_add_field(Object *obj, const char *name,
ObjectPropertyAllowSet allow_set)
{
ObjectProperty *op;
+ Property *newprop = g_new0(Property, 1);
assert(allow_set);
assert(!prop->info->create);
- op = object_property_add(obj, name, prop->info->name,
- field_prop_getter(prop->info),
- field_prop_setter(prop->info),
- prop->info->release,
- prop);
+ *newprop = *prop;
+ op = object_property_add(obj, name, newprop->info->name,
+ field_prop_getter(newprop->info),
+ field_prop_setter(newprop->info),
+ static_prop_release_dynamic_prop,
+ newprop);
object_property_set_description(obj, name,
- prop->info->description);
+ newprop->info->description);
- if (prop->set_default) {
- prop->info->set_default_value(op, prop);
+ if (newprop->set_default) {
+ newprop->info->set_default_value(op, newprop);
if (op->init) {
op->init(obj, op);
}
--
2.28.0
- [PATCH v3 31/53] qdev: Avoid unnecessary DeviceState* variable at set_prop_arraylen(), (continued)
- [PATCH v3 31/53] qdev: Avoid unnecessary DeviceState* variable at set_prop_arraylen(), Eduardo Habkost, 2020/11/12
- [PATCH v3 32/53] tests: Add unit test for qdev array properties, Eduardo Habkost, 2020/11/12
- [PATCH v3 33/53] qom: Add allow_set callback to ObjectProperty, Eduardo Habkost, 2020/11/12
- [PATCH v3 34/53] qdev: Make qdev_prop_allow_set() a ObjectProperty.allow_set callback, Eduardo Habkost, 2020/11/12
- [PATCH v3 36/53] qdev: Don't set .name_template for array elements, Eduardo Habkost, 2020/11/12
- [PATCH v3 35/53] qdev: Rename Property.name to Property.name_template, Eduardo Habkost, 2020/11/12
- [PATCH v3 37/53] qdev: Remove ArrayElementProperty.propname field, Eduardo Habkost, 2020/11/12
- [PATCH v3 38/53] qdev: Remove ArrayElementProperty.release field, Eduardo Habkost, 2020/11/12
- [PATCH v3 39/53] qdev: Get rid of ArrayElementProperty struct, Eduardo Habkost, 2020/11/12
- [PATCH v3 40/53] qdev: Rename array_element_release() to static_prop_release_dynamic_prop(), Eduardo Habkost, 2020/11/12
- [PATCH v3 41/53] qdev: Make object_property_add_field() copy the Property struct,
Eduardo Habkost <=
- [PATCH v3 44/53] qom: Add new qom.h header, Eduardo Habkost, 2020/11/12
- [PATCH v3 43/53] qdev: Move static_prop_release_dynamic_prop() closer to its usage, Eduardo Habkost, 2020/11/12
- [PATCH v3 42/53] qdev: Reuse object_property_add_field() when adding array elements, Eduardo Habkost, 2020/11/12
- [PATCH v3 45/53] qdev: Move core field property code to QOM, Eduardo Habkost, 2020/11/12
- [PATCH v3 46/53] qdev: Move base property types to qom/property-types.c, Eduardo Habkost, 2020/11/12
- [PATCH v3 47/53] qom: Include static property API reference in documentation, Eduardo Habkost, 2020/11/12
- [PATCH v3 48/53] qom: object_class_property_add_field() function, Eduardo Habkost, 2020/11/12
- [PATCH v3 49/53] qom: FIELD_PROP macro, Eduardo Habkost, 2020/11/12
- [PATCH v3 50/53] qom: Delete DEFINE_PROP_*SIGNED_NODEFAULT macro, Eduardo Habkost, 2020/11/12
- [PATCH v3 52/53] tests: Use field property at check-qom-proplist test case, Eduardo Habkost, 2020/11/12