qom: add object_new_with_class

Similar to CPU and machine classes, "-accel" class names are mangled,
so we have to first get a class via accel_find and then instantiate it.
Provide a new function to instantiate a class without going through
object_class_get_name, and use it for CPUs and machines already.

Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Paolo Bonzini 2019-11-13 13:57:55 +01:00
parent 1fff3c206f
commit 3c75e12ea6
6 changed files with 25 additions and 11 deletions

View file

@ -48,9 +48,7 @@ AccelClass *accel_find(const char *opt_name)
int accel_init_machine(AccelClass *acc, MachineState *ms)
{
ObjectClass *oc = OBJECT_CLASS(acc);
const char *cname = object_class_get_name(oc);
AccelState *accel = ACCEL(object_new(cname));
AccelState *accel = ACCEL(object_new_with_class(OBJECT_CLASS(acc)));
int ret;
ms->accelerator = accel;
*(acc->allowed) = true;