diff options
author | Paolo Bonzini | 2020-10-27 17:12:57 +0100 |
---|---|---|
committer | Paolo Bonzini | 2020-12-10 18:15:01 +0100 |
commit | 169cbac12d4fad5922619a0b64ad0aa66e9365a7 (patch) | |
tree | 6ac42c4542d3ff02f7e73e7123736735111e1ac5 /qom | |
parent | docs/devel/loads-stores: Add regexp for DMA functions (diff) | |
download | qemu-169cbac12d4fad5922619a0b64ad0aa66e9365a7.tar.gz qemu-169cbac12d4fad5922619a0b64ad0aa66e9365a7.tar.xz qemu-169cbac12d4fad5922619a0b64ad0aa66e9365a7.zip |
qom: eliminate identical functions
Most property release functions in qom/object.c only free the opaque
value. Combine all of them into a single function.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'qom')
-rw-r--r-- | qom/object.c | 36 |
1 files changed, 7 insertions, 29 deletions
diff --git a/qom/object.c b/qom/object.c index 1065355233..75a78c9343 100644 --- a/qom/object.c +++ b/qom/object.c @@ -2174,11 +2174,10 @@ static void property_set_str(Object *obj, Visitor *v, const char *name, g_free(value); } -static void property_release_str(Object *obj, const char *name, - void *opaque) +static void property_release_data(Object *obj, const char *name, + void *opaque) { - StringProperty *prop = opaque; - g_free(prop); + g_free(opaque); } ObjectProperty * @@ -2194,7 +2193,7 @@ object_property_add_str(Object *obj, const char *name, return object_property_add(obj, name, "string", get ? property_get_str : NULL, set ? property_set_str : NULL, - property_release_str, + property_release_data, prop); } @@ -2251,13 +2250,6 @@ static void property_set_bool(Object *obj, Visitor *v, const char *name, prop->set(obj, value, errp); } -static void property_release_bool(Object *obj, const char *name, - void *opaque) -{ - BoolProperty *prop = opaque; - g_free(prop); -} - ObjectProperty * object_property_add_bool(Object *obj, const char *name, bool (*get)(Object *, Error **), @@ -2271,7 +2263,7 @@ object_property_add_bool(Object *obj, const char *name, return object_property_add(obj, name, "bool", get ? property_get_bool : NULL, set ? property_set_bool : NULL, - property_release_bool, + property_release_data, prop); } @@ -2320,13 +2312,6 @@ static void property_set_enum(Object *obj, Visitor *v, const char *name, prop->set(obj, value, errp); } -static void property_release_enum(Object *obj, const char *name, - void *opaque) -{ - EnumProperty *prop = opaque; - g_free(prop); -} - ObjectProperty * object_property_add_enum(Object *obj, const char *name, const char *typename, @@ -2343,7 +2328,7 @@ object_property_add_enum(Object *obj, const char *name, return object_property_add(obj, name, typename, get ? property_get_enum : NULL, set ? property_set_enum : NULL, - property_release_enum, + property_release_data, prop); } @@ -2410,13 +2395,6 @@ out_end: visit_end_struct(v, NULL); } -static void property_release_tm(Object *obj, const char *name, - void *opaque) -{ - TMProperty *prop = opaque; - g_free(prop); -} - ObjectProperty * object_property_add_tm(Object *obj, const char *name, void (*get)(Object *, struct tm *, Error **)) @@ -2427,7 +2405,7 @@ object_property_add_tm(Object *obj, const char *name, return object_property_add(obj, name, "struct tm", get ? property_get_tm : NULL, NULL, - property_release_tm, + property_release_data, prop); } |