>> static gint memory_device_addr_sort(gconstpointer a, gconstpointer b) >> { >> const MemoryDeviceState *md_a = MEMORY_DEVICE(a); >> @@ -168,6 +184,7 @@ static uint64_t memory_device_get_free_addr(MachineState >> *ms, >> for (item = list; item; item = g_slist_next(item)) { >> MemoryDeviceState *md = item->data; >> const MemoryDeviceClass *mdc = MEMORY_DEVICE_GET_CLASS(OBJECT(md)); >> + const char *id = memory_device_id(md); >> uint64_t md_size, md_addr; >> >> md_addr = mdc->get_addr(md); >> @@ -178,8 +195,8 @@ static uint64_t memory_device_get_free_addr(MachineState >> *ms, >> >> if (ranges_overlap(md_addr, md_size, new_addr, size)) { >> if (hint) { >> - const DeviceState *d = DEVICE(md); >> - error_setg(errp, "address range conflicts with '%s'", >> d->id); >> + error_setg(errp, "address range conflicts with '%s'", >> + id ? id : 0); > > What's that 'id ? id : 0' trick for?
0 -> "", then it actually makes sense :) I'll fix this up, thanks! -- Thanks, David / dhildenb