Re: [Qemu-devel] [PATCH 05/21] qom: assert that public types have a non-NULL parent field
Am 02.05.2012 14:35, schrieb Andreas Färber: > Am 02.05.2012 13:30, schrieb Paolo Bonzini: >> This protects against unwanted effects of changing TYPE_OBJECT from >> NULL to a string. Suggested by Andreas Faerber. >> >> Signed-off-by: Paolo Bonzini >> --- >> include/qemu/object.h |1 - >> qom/object.c | 14 ++ >> 2 files changed, 10 insertions(+), 5 deletions(-) >> >> diff --git a/include/qemu/object.h b/include/qemu/object.h >> index 9c49d99..ec2b382 100644 >> --- a/include/qemu/object.h >> +++ b/include/qemu/object.h >> @@ -527,7 +527,6 @@ const char *object_get_typename(Object *obj); >> */ >> Type type_register_static(const TypeInfo *info); >> >> -#define type_register_static_alias(info, name) do { } while (0) > > Unrelated removal of unused code? > > Other than that > > Reviewed-by: Andreas Färber Split in two and applied to qom-next: http://repo.or.cz/w/qemu/afaerber.git/shortlog/refs/heads/qom-next /-F -- SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
[Qemu-devel] [PATCH 05/21] qom: assert that public types have a non-NULL parent field
This protects against unwanted effects of changing TYPE_OBJECT from NULL to a string. Suggested by Andreas Faerber. Signed-off-by: Paolo Bonzini --- include/qemu/object.h |1 - qom/object.c | 14 ++ 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/include/qemu/object.h b/include/qemu/object.h index 9c49d99..ec2b382 100644 --- a/include/qemu/object.h +++ b/include/qemu/object.h @@ -527,7 +527,6 @@ const char *object_get_typename(Object *obj); */ Type type_register_static(const TypeInfo *info); -#define type_register_static_alias(info, name) do { } while (0) /** * type_register: diff --git a/qom/object.c b/qom/object.c index 88ec417..e536ece 100644 --- a/qom/object.c +++ b/qom/object.c @@ -95,7 +95,7 @@ static TypeImpl *type_table_lookup(const char *name) return g_hash_table_lookup(type_table_get(), name); } -TypeImpl *type_register(const TypeInfo *info) +static TypeImpl *type_register_internal(const TypeInfo *info) { TypeImpl *ti = g_malloc0(sizeof(*ti)); @@ -137,6 +137,12 @@ TypeImpl *type_register(const TypeInfo *info) return ti; } +TypeImpl *type_register(const TypeInfo *info) +{ +assert(info->parent); +return type_register_internal(info); +} + TypeImpl *type_register_static(const TypeInfo *info) { return type_register(info); @@ -204,7 +210,7 @@ static void type_class_interface_init(TypeImpl *ti, InterfaceImpl *iface) char *name = g_strdup_printf("<%s::%s>", ti->name, iface->parent); info.name = name; -iface->type = type_register(&info); +iface->type = type_register_internal(&info); g_free(name); } @@ -1212,8 +1218,8 @@ static void register_types(void) .abstract = true, }; -type_interface = type_register_static(&interface_info); -type_register_static(&object_info); +type_interface = type_register_internal(&interface_info); +type_register_internal(&object_info); } type_init(register_types) -- 1.7.9.3
Re: [Qemu-devel] [PATCH 05/21] qom: assert that public types have a non-NULL parent field
Am 02.05.2012 13:30, schrieb Paolo Bonzini: > This protects against unwanted effects of changing TYPE_OBJECT from > NULL to a string. Suggested by Andreas Faerber. > > Signed-off-by: Paolo Bonzini > --- > include/qemu/object.h |1 - > qom/object.c | 14 ++ > 2 files changed, 10 insertions(+), 5 deletions(-) > > diff --git a/include/qemu/object.h b/include/qemu/object.h > index 9c49d99..ec2b382 100644 > --- a/include/qemu/object.h > +++ b/include/qemu/object.h > @@ -527,7 +527,6 @@ const char *object_get_typename(Object *obj); > */ > Type type_register_static(const TypeInfo *info); > > -#define type_register_static_alias(info, name) do { } while (0) Unrelated removal of unused code? Other than that Reviewed-by: Andreas Färber Thanks, Andreas -- SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg