qemu-trivial
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-trivial] [Qemu-devel] [PATCH] remove call to type_initialize i


From: Peter Crosthwaite
Subject: Re: [Qemu-trivial] [Qemu-devel] [PATCH] remove call to type_initialize in object_new_with_type
Date: Fri, 14 Jun 2013 23:02:25 +1000

Hi Hu,

On Thu, Jun 13, 2013 at 8:51 PM, Hu Tao <address@hidden> wrote:
> Since it's called in object_initialize_with_type later.
>
> Signed-off-by: Hu Tao <address@hidden>
> ---
>  qom/object.c | 3 ---
>  1 file changed, 3 deletions(-)
>
> diff --git a/qom/object.c b/qom/object.c
> index 803b94b..38dc45e 100644
> --- a/qom/object.c
> +++ b/qom/object.c
> @@ -406,9 +406,6 @@ Object *object_new_with_type(Type type)
>  {
>      Object *obj;
>
> -    g_assert(type != NULL);
> -    type_initialize(type);
> -
>      obj = g_malloc(type->instance_size);

type->instance_size may be lazily set by type_initilize, so I think
this malloc will break for classes that inherit their instance size.
Some relevant code (qom/object.c):

228 static void type_initialize(TypeImpl *ti)
 229 {
[snip]
 236     ti->class_size = type_class_get_size(ti);
 237     ti->instance_size = type_object_get_size(ti);

 176 static size_t type_object_get_size(TypeImpl *ti)
 177 {
 178     if (ti->instance_size) {
 179         return ti->instance_size;
 180     }
 181
 182     if (type_has_parent(ti)) {
 183         return type_object_get_size(type_get_parent(ti));
 184     }
 185
 186     return 0;
 187 }

Regards,
Peter

>      object_initialize_with_type(obj, type);
>      obj->free = g_free;
> --
> 1.8.2.3
>
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]