CPUs are never added to the composition tree, so delete is achieved simply by removing the last references to them.
Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> --- linux-user/syscall.c | 2 +- target-i386/helper.c | 4 ++-- target-ppc/translate_init.c | 2 +- target-sparc/cpu.c | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/linux-user/syscall.c b/linux-user/syscall.c index 693e66f..a148d9f 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -5202,7 +5202,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, NULL, NULL, 0); } thread_env = NULL; - object_delete(OBJECT(ENV_GET_CPU(cpu_env))); + object_unref(OBJECT(ENV_GET_CPU(cpu_env))); g_free(ts); pthread_exit(NULL); } diff --git a/target-i386/helper.c b/target-i386/helper.c index 547c25e..269549d 100644 --- a/target-i386/helper.c +++ b/target-i386/helper.c @@ -1276,14 +1276,14 @@ X86CPU *cpu_x86_init(const char *cpu_model) env->cpu_model_str = cpu_model; if (cpu_x86_register(cpu, cpu_model) < 0) { - object_delete(OBJECT(cpu)); + object_unref(OBJECT(cpu)); return NULL; } x86_cpu_realize(OBJECT(cpu), &error); if (error) { error_free(error); - object_delete(OBJECT(cpu)); + object_unref(OBJECT(cpu)); return NULL; } return cpu; diff --git a/target-ppc/translate_init.c b/target-ppc/translate_init.c index 2d78529..ee51419 100644 --- a/target-ppc/translate_init.c +++ b/target-ppc/translate_init.c @@ -10346,7 +10346,7 @@ PowerPCCPU *cpu_ppc_init(const char *cpu_model) if (err != NULL) { fprintf(stderr, "%s\n", error_get_pretty(err)); error_free(err); - object_delete(OBJECT(cpu)); + object_unref(OBJECT(cpu)); return NULL; } diff --git a/target-sparc/cpu.c b/target-sparc/cpu.c index f404aa8..4bc1afc 100644 --- a/target-sparc/cpu.c +++ b/target-sparc/cpu.c @@ -119,7 +119,7 @@ SPARCCPU *cpu_sparc_init(const char *cpu_model) } if (cpu_sparc_register(env, cpu_model) < 0) { - object_delete(OBJECT(cpu)); + object_unref(OBJECT(cpu)); return NULL; } qemu_init_vcpu(env); -- 1.8.1