From: Marc-André Lureau Date: Fri, 10 Jan 2020 15:30:24 +0000 (+0400) Subject: object: do not free class properties X-Git-Tag: v5.0.0-rc0~125^2~18 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fc4fe712aed18e0b5b88cfc56769c76d15a6ff66;p=thirdparty%2Fqemu.git object: do not free class properties The release callback is called during object_property_del_all(), on a live instance. But class properties are common among all instances. It is not currently called, because we don't release classes, but it would not be correct if we did. Signed-off-by: Marc-André Lureau Message-Id: <20200110153039.1379601-12-marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini --- diff --git a/qom/object.c b/qom/object.c index 2d290196200..864281ececa 100644 --- a/qom/object.c +++ b/qom/object.c @@ -2127,7 +2127,7 @@ object_class_property_add_str(ObjectClass *klass, const char *name, rv = object_class_property_add(klass, name, "string", get ? property_get_str : NULL, set ? property_set_str : NULL, - property_release_str, + NULL, prop, &local_err); if (local_err) { error_propagate(errp, local_err); @@ -2220,7 +2220,7 @@ object_class_property_add_bool(ObjectClass *klass, const char *name, rv = object_class_property_add(klass, name, "bool", get ? property_get_bool : NULL, set ? property_set_bool : NULL, - property_release_bool, + NULL, prop, &local_err); if (local_err) { error_propagate(errp, local_err); @@ -2312,7 +2312,7 @@ object_class_property_add_enum(ObjectClass *klass, const char *name, rv = object_class_property_add(klass, name, typename, get ? property_get_enum : NULL, set ? property_set_enum : NULL, - property_release_enum, + NULL, prop, &local_err); if (local_err) { error_propagate(errp, local_err); @@ -2413,7 +2413,7 @@ object_class_property_add_tm(ObjectClass *klass, const char *name, rv = object_class_property_add(klass, name, "struct tm", get ? property_get_tm : NULL, NULL, - property_release_tm, + NULL, prop, &local_err); if (local_err) { error_propagate(errp, local_err);