[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 29/44] qdev: Remove ArrayElementProperty.propname field
From: |
Eduardo Habkost |
Subject: |
[PATCH v2 29/44] qdev: Remove ArrayElementProperty.propname field |
Date: |
Wed, 4 Nov 2020 11:00:06 -0500 |
Now that we don't save the property name in Property.name
anymore, we don't need the to keep the property name string alive
after the property was registered.
We can remove the ArrayElementProperty.propname field, and free
the string immediately after registering the property.
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
This is a new patch added in v2 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 | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c
index 4cbdd34a04..a0192c3723 100644
--- a/hw/core/qdev-properties.c
+++ b/hw/core/qdev-properties.c
@@ -533,7 +533,6 @@ const PropertyInfo qdev_prop_size32 = {
*/
typedef struct {
struct Property prop;
- char *propname;
ObjectPropertyRelease *release;
} ArrayElementProperty;
@@ -547,7 +546,6 @@ static void array_element_release(Object *obj, const char
*name, void *opaque)
if (p->release) {
p->release(obj, name, opaque);
}
- g_free(p->propname);
g_free(p);
}
@@ -590,10 +588,9 @@ static void set_prop_arraylen(Object *obj, Visitor *v,
const char *name,
*/
*arrayptr = eltptr = g_malloc0(*alenptr * prop->arrayfieldsize);
for (i = 0; i < *alenptr; i++, eltptr += prop->arrayfieldsize) {
- char *propname = g_strdup_printf("%s[%d]", arrayname, i);
+ g_autofree char *propname = g_strdup_printf("%s[%d]", arrayname, i);
ArrayElementProperty *arrayprop = g_new0(ArrayElementProperty, 1);
arrayprop->release = prop->arrayinfo->release;
- arrayprop->propname = propname;
arrayprop->prop.info = prop->arrayinfo;
/* This ugly piece of pointer arithmetic sets up the offset so
* that when the underlying get/set hooks call qdev_get_prop_ptr
--
2.28.0
- [PATCH v2 15/44] qdev: Reuse DEFINE_PROP in all DEFINE_PROP_* macros, (continued)
- [PATCH v2 15/44] qdev: Reuse DEFINE_PROP in all DEFINE_PROP_* macros, Eduardo Habkost, 2020/11/04
- [PATCH v2 28/44] qdev: Avoid unnecessary DeviceState* variable at set_prop_arraylen(), Eduardo Habkost, 2020/11/04
- [PATCH v2 39/44] qdev: PROP_* macros, Eduardo Habkost, 2020/11/04
- [PATCH v2 32/44] qom: Add allow_set callback to ObjectProperty, Eduardo Habkost, 2020/11/04
- [PATCH v2 31/44] qdev: Reuse object_property_add_field() when adding array elements, Eduardo Habkost, 2020/11/04
- [PATCH v2 18/44] qdev: Avoid using prop->name unnecessarily, Eduardo Habkost, 2020/11/04
- [PATCH v2 22/44] qdev: Move dev->realized check to qdev_property_set(), Eduardo Habkost, 2020/11/04
- [PATCH v2 27/44] qdev: Don't set qdev_prop_name for array elements, Eduardo Habkost, 2020/11/04
- [PATCH v2 29/44] qdev: Remove ArrayElementProperty.propname field,
Eduardo Habkost <=
- [PATCH v2 40/44] qdev: Move core field property code to QOM, Eduardo Habkost, 2020/11/04
- [PATCH v2 23/44] qdev: Make PropertyInfo.create return ObjectProperty*, Eduardo Habkost, 2020/11/04
- [PATCH v2 26/44] qdev: Rename Property.name to Property.qdev_prop_name, Eduardo Habkost, 2020/11/04
- [PATCH v2 33/44] qdev: Make qdev_prop_allow_set() a ObjectProperty.allow_set callback, Eduardo Habkost, 2020/11/04
- [PATCH v2 41/44] qdev: Move base property types to qom/property-types.c, Eduardo Habkost, 2020/11/04
- [PATCH v2 34/44] qdev: Make qdev_propinfo_get_uint16() static, Eduardo Habkost, 2020/11/04
- [PATCH v2 43/44] tests: Use field properties at check-qom-proplist test case, Eduardo Habkost, 2020/11/04