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