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.y...@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.y...@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. -- Wei Yang Help you, Help me