Re: [Qemu-devel] [PATCH 05/21] qom: assert that public types have a non-NULL parent field

2012-05-23 Thread Andreas Färber
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

2012-05-02 Thread 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)
 
 /**
  * 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

2012-05-02 Thread 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 

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