On 05/03/2017 11:35 AM, Eduardo Habkost wrote: >> + >> + memset(&cpu, 0, sizeof(cpu)); >> + cpu.has_node_id = object->u.cpu.has_node_id; >> + cpu.node_id = object->u.cpu.node_id; >> + cpu.has_socket_id = object->u.cpu.has_socket_id; >> + cpu.socket_id = object->u.cpu.socket_id; >> + cpu.has_core_id = object->u.cpu.has_core_id; >> + cpu.core_id = object->u.cpu.core_id; >> + cpu.has_thread_id = object->u.cpu.has_thread_id; >> + cpu.thread_id = object->u.cpu.thread_id; > > We don't have a way to avoid copying each field individually? > Some visitor trick, maybe? > > Eric, Markus, Michael, do you have any suggestions? Markus just added QAPI_CLONE_MEMBERS(), which sounds like what you want: https://lists.gnu.org/archive/html/qemu-devel/2017-04/msg04867.html -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3266 Virtualization: qemu.org | libvirt.org