Message ID | 20190301074448.8926-1-richardw.yang@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | qom: remove type_initialize() in object_new_with_type() | expand |
On Fri, 1 Mar 2019 15:44:48 +0800 Wei Yang <richardw.yang@linux.intel.com> wrote: > Here is the abstraction of current call flow of object_new_with_type() > > object_initialize_with_type > type_initialize > object_initialize_with_type > type_initialize > > This is not necessary to spread type_initialize in two places. > > Signed-off-by: Wei Yang <richardw.yang@linux.intel.com> > --- > qom/object.c | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/qom/object.c b/qom/object.c > index b8c732063b..6252cca418 100644 > --- a/qom/object.c > +++ b/qom/object.c > @@ -585,7 +585,6 @@ static Object *object_new_with_type(Type type) > Object *obj; > > g_assert(type != NULL); > - type_initialize(type); > > obj = g_malloc(type->instance_size); > object_initialize_with_type(obj, type->instance_size, type); Are you sure it's correct? see how type->instance_size PS: there is also unit-tests which might detect issues in patches before one sends them. To execute them run: make check
On Fri, Mar 01, 2019 at 10:33:46AM +0100, Igor Mammedov wrote: >On Fri, 1 Mar 2019 15:44:48 +0800 >Wei Yang <richardw.yang@linux.intel.com> wrote: > >> Here is the abstraction of current call flow of object_new_with_type() >> >> object_initialize_with_type >> type_initialize >> object_initialize_with_type >> type_initialize >> >> This is not necessary to spread type_initialize in two places. >> >> Signed-off-by: Wei Yang <richardw.yang@linux.intel.com> >> --- >> qom/object.c | 1 - >> 1 file changed, 1 deletion(-) >> >> diff --git a/qom/object.c b/qom/object.c >> index b8c732063b..6252cca418 100644 >> --- a/qom/object.c >> +++ b/qom/object.c >> @@ -585,7 +585,6 @@ static Object *object_new_with_type(Type type) >> Object *obj; >> >> g_assert(type != NULL); >> - type_initialize(type); >> >> obj = g_malloc(type->instance_size); >> object_initialize_with_type(obj, type->instance_size, type); >Are you sure it's correct? > >see how type->instance_size > You are right, I thought the instance_size is initialized in type_new(). But this would be adjusted in type_initialize() again. >PS: >there is also unit-tests which might detect issues in patches before >one sends them. To execute them run: make check > With this patch applied, I managed to run a guest successfully. Looks this didn't catch some corner case.
diff --git a/qom/object.c b/qom/object.c index b8c732063b..6252cca418 100644 --- a/qom/object.c +++ b/qom/object.c @@ -585,7 +585,6 @@ static Object *object_new_with_type(Type type) Object *obj; g_assert(type != NULL); - type_initialize(type); obj = g_malloc(type->instance_size); object_initialize_with_type(obj, type->instance_size, type);
Here is the abstraction of current call flow of object_new_with_type() object_initialize_with_type type_initialize object_initialize_with_type type_initialize This is not necessary to spread type_initialize in two places. Signed-off-by: Wei Yang <richardw.yang@linux.intel.com> --- qom/object.c | 1 - 1 file changed, 1 deletion(-)