Revision 51492fd1 target-arm/cpu.c
b/target-arm/cpu.c | ||
---|---|---|
204 | 204 |
static ObjectClass *arm_cpu_class_by_name(const char *cpu_model) |
205 | 205 |
{ |
206 | 206 |
ObjectClass *oc; |
207 |
char *typename; |
|
207 | 208 |
|
208 | 209 |
if (!cpu_model) { |
209 | 210 |
return NULL; |
210 | 211 |
} |
211 | 212 |
|
212 |
oc = object_class_by_name(cpu_model); |
|
213 |
typename = g_strdup_printf("%s-" TYPE_ARM_CPU, cpu_model); |
|
214 |
oc = object_class_by_name(typename); |
|
215 |
g_free(typename); |
|
213 | 216 |
if (!oc || !object_class_dynamic_cast(oc, TYPE_ARM_CPU) || |
214 | 217 |
object_class_is_abstract(oc)) { |
215 | 218 |
return NULL; |
... | ... | |
789 | 792 |
static void cpu_register(const ARMCPUInfo *info) |
790 | 793 |
{ |
791 | 794 |
TypeInfo type_info = { |
792 |
.name = info->name, |
|
793 | 795 |
.parent = TYPE_ARM_CPU, |
794 | 796 |
.instance_size = sizeof(ARMCPU), |
795 | 797 |
.instance_init = info->initfn, |
796 | 798 |
.class_size = sizeof(ARMCPUClass), |
797 | 799 |
}; |
798 | 800 |
|
801 |
type_info.name = g_strdup_printf("%s-" TYPE_ARM_CPU, info->name); |
|
799 | 802 |
type_register(&type_info); |
803 |
g_free((void *)type_info.name); |
|
800 | 804 |
} |
801 | 805 |
|
802 | 806 |
static const TypeInfo arm_cpu_type_info = { |
Also available in: Unified diff