mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-01 06:43:53 -06:00
hw/cpu: Call object_class_is_abstract() once in cpu_class_by_name()
Let CPUClass::class_by_name() handlers to return abstract classes, and filter them once in the public cpu_class_by_name() method. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20230908112235.75914-3-philmd@linaro.org>
This commit is contained in:
parent
55f2cd7737
commit
3a9d0d7b64
15 changed files with 27 additions and 36 deletions
|
@ -146,10 +146,18 @@ static bool cpu_common_has_work(CPUState *cs)
|
|||
|
||||
ObjectClass *cpu_class_by_name(const char *typename, const char *cpu_model)
|
||||
{
|
||||
CPUClass *cc = CPU_CLASS(object_class_by_name(typename));
|
||||
ObjectClass *oc;
|
||||
CPUClass *cc;
|
||||
|
||||
assert(cpu_model && cc->class_by_name);
|
||||
return cc->class_by_name(cpu_model);
|
||||
oc = object_class_by_name(typename);
|
||||
cc = CPU_CLASS(oc);
|
||||
assert(cc->class_by_name);
|
||||
assert(cpu_model);
|
||||
oc = cc->class_by_name(cpu_model);
|
||||
if (oc == NULL || object_class_is_abstract(oc)) {
|
||||
return NULL;
|
||||
}
|
||||
return oc;
|
||||
}
|
||||
|
||||
static void cpu_common_parse_features(const char *typename, char *features,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue