From: Michal Privoznik Date: Mon, 27 Feb 2023 09:22:28 +0000 (+0100) Subject: qemu_monitor: Decouple switch()-es in qemuMonitorJSONGetMemoryDeviceInfo() X-Git-Tag: v9.2.0-rc1~283 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=61233dfbee616e36af6c495493cace0f3370f37b;p=thirdparty%2Flibvirt.git qemu_monitor: Decouple switch()-es in qemuMonitorJSONGetMemoryDeviceInfo() There are two switch() statements over the same variable inside of qemuMonitorJSONGetMemoryDeviceInfo(). Join them together into one switch. Signed-off-by: Michal Privoznik Reviewed-by: Kristina Hanicova --- diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index 5ed1f9442e..2fe3f696c8 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -7233,6 +7233,8 @@ qemuMonitorJSONGetMemoryDeviceInfo(qemuMonitor *mon, return -1; } + meminfo = g_new0(qemuMonitorMemoryDeviceInfo, 1); + switch ((virDomainMemoryModel) model) { case VIR_DOMAIN_MEMORY_MODEL_DIMM: case VIR_DOMAIN_MEMORY_MODEL_NVDIMM: @@ -7245,69 +7247,54 @@ qemuMonitorJSONGetMemoryDeviceInfo(qemuMonitor *mon, _("dimm memory info data is missing 'id'")); return -1; } - break; - - case VIR_DOMAIN_MEMORY_MODEL_SGX_EPC: - if (!(devalias = virJSONValueObjectGetString(dimminfo, "memdev"))) { - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("sgx-epc memory info data is missing 'memdev'")); - return -1; - } - break; - - case VIR_DOMAIN_MEMORY_MODEL_VIRTIO_PMEM: - case VIR_DOMAIN_MEMORY_MODEL_NONE: - case VIR_DOMAIN_MEMORY_MODEL_LAST: - /* type not handled yet */ - continue; - } - - meminfo = g_new0(qemuMonitorMemoryDeviceInfo, 1); - switch ((virDomainMemoryModel) model) { - case VIR_DOMAIN_MEMORY_MODEL_DIMM: - case VIR_DOMAIN_MEMORY_MODEL_NVDIMM: - if (virJSONValueObjectGetNumberUlong(dimminfo, "addr", - &meminfo->address) < 0) { - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("malformed/missing addr in dimm memory info")); - return -1; - } + if (model == VIR_DOMAIN_MEMORY_MODEL_DIMM || + model == VIR_DOMAIN_MEMORY_MODEL_NVDIMM) { + if (virJSONValueObjectGetNumberUlong(dimminfo, "addr", + &meminfo->address) < 0) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("malformed/missing addr in dimm memory info")); + return -1; + } - if (virJSONValueObjectGetNumberUint(dimminfo, "slot", - &meminfo->slot) < 0) { - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("malformed/missing slot in dimm memory info")); - return -1; - } + if (virJSONValueObjectGetNumberUint(dimminfo, "slot", + &meminfo->slot) < 0) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("malformed/missing slot in dimm memory info")); + return -1; + } - if (virJSONValueObjectGetBoolean(dimminfo, "hotplugged", - &meminfo->hotplugged) < 0) { - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("malformed/missing hotplugged in dimm memory info")); - return -1; + if (virJSONValueObjectGetBoolean(dimminfo, "hotplugged", + &meminfo->hotplugged) < 0) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("malformed/missing hotplugged in dimm memory info")); + return -1; - } + } - if (virJSONValueObjectGetBoolean(dimminfo, "hotpluggable", - &meminfo->hotpluggable) < 0) { - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("malformed/missing hotpluggable in dimm memory info")); - return -1; + if (virJSONValueObjectGetBoolean(dimminfo, "hotpluggable", + &meminfo->hotpluggable) < 0) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("malformed/missing hotpluggable in dimm memory info")); + return -1; + } + } else if (model == VIR_DOMAIN_MEMORY_MODEL_VIRTIO_MEM) { + if (virJSONValueObjectGetNumberUlong(dimminfo, "size", + &meminfo->size) < 0) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("malformed/missing size in virtio memory info")); + return -1; + } } break; - case VIR_DOMAIN_MEMORY_MODEL_VIRTIO_MEM: - if (virJSONValueObjectGetNumberUlong(dimminfo, "size", - &meminfo->size) < 0) { + case VIR_DOMAIN_MEMORY_MODEL_SGX_EPC: + if (!(devalias = virJSONValueObjectGetString(dimminfo, "memdev"))) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("malformed/missing size in virtio memory info")); + _("sgx-epc memory info data is missing 'memdev'")); return -1; } - break; - - case VIR_DOMAIN_MEMORY_MODEL_SGX_EPC: if (virJSONValueObjectGetNumberUlong(dimminfo, "memaddr", &meminfo->address) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s",