[PATCH 4/9] qemu: Use g_autoptr in qemuConnectCompareHypervisorCPU

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Let's get rid of the only explicitly freed variable left in
qemuConnectCompareHypervisorCPU.

Signed-off-by: Jiri Denemark <jdenemar@xxxxxxxxxx>
---
 src/qemu/qemu_driver.c | 40 +++++++++++++++++++---------------------
 1 file changed, 19 insertions(+), 21 deletions(-)

diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index f27c21ca8c..62a44bf6e7 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -11597,14 +11597,13 @@ qemuConnectCompareHypervisorCPU(virConnectPtr conn,
                                 const char *xmlCPU,
                                 unsigned int flags)
 {
-    int ret = VIR_CPU_COMPARE_ERROR;
     virQEMUDriver *driver = conn->privateData;
     g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver);
     g_autoptr(virQEMUCaps) qemuCaps = NULL;
     bool failIncompatible;
     bool validateXML;
     virCPUDef *hvCPU;
-    virCPUDef *cpu = NULL;
+    g_autoptr(virCPUDef) cpu = NULL;
     virArch arch;
     virDomainVirtType virttype;
 
@@ -11613,7 +11612,7 @@ qemuConnectCompareHypervisorCPU(virConnectPtr conn,
                   VIR_CPU_COMPARE_ERROR);
 
     if (virConnectCompareHypervisorCPUEnsureACL(conn) < 0)
-        goto cleanup;
+        return VIR_CPU_COMPARE_ERROR;
 
     failIncompatible = !!(flags & VIR_CONNECT_COMPARE_CPU_FAIL_INCOMPATIBLE);
     validateXML = !!(flags & VIR_CONNECT_COMPARE_CPU_VALIDATE_XML);
@@ -11625,7 +11624,7 @@ qemuConnectCompareHypervisorCPU(virConnectPtr conn,
                                              machine,
                                              &arch, &virttype, NULL);
     if (!qemuCaps)
-        goto cleanup;
+        return VIR_CPU_COMPARE_ERROR;
 
     hvCPU = virQEMUCapsGetHostModel(qemuCaps, virttype,
                                     VIR_QEMU_CAPS_HOST_CPU_REPORTED);
@@ -11635,17 +11634,19 @@ qemuConnectCompareHypervisorCPU(virConnectPtr conn,
                        _("QEMU '%1$s' does not support reporting CPU model for virttype '%2$s'"),
                        virQEMUCapsGetBinary(qemuCaps),
                        virDomainVirtTypeToString(virttype));
-        goto cleanup;
+        return VIR_CPU_COMPARE_ERROR;
     }
 
     if (ARCH_IS_X86(arch)) {
-        ret = virCPUCompareXML(arch, hvCPU, xmlCPU, failIncompatible,
-                               validateXML);
-    } else if (ARCH_IS_S390(arch) &&
-               virQEMUCapsGet(qemuCaps, QEMU_CAPS_QUERY_CPU_MODEL_COMPARISON)) {
+        return virCPUCompareXML(arch, hvCPU, xmlCPU, failIncompatible,
+                                validateXML);
+    }
+
+    if (ARCH_IS_S390(arch) &&
+        virQEMUCapsGet(qemuCaps, QEMU_CAPS_QUERY_CPU_MODEL_COMPARISON)) {
         if (virCPUDefParseXMLString(xmlCPU, VIR_CPU_TYPE_AUTO, &cpu,
                                     validateXML) < 0)
-            goto cleanup;
+            return VIR_CPU_COMPARE_ERROR;
 
         if (!cpu->model) {
             if (cpu->mode == VIR_CPU_MODE_HOST_PASSTHROUGH) {
@@ -11655,21 +11656,18 @@ qemuConnectCompareHypervisorCPU(virConnectPtr conn,
             } else {
                 virReportError(VIR_ERR_INVALID_ARG, "%s",
                                _("cpu parameter is missing a model name"));
-                goto cleanup;
+                return VIR_CPU_COMPARE_ERROR;
             }
         }
-        ret = qemuConnectCPUModelComparison(qemuCaps, cfg->libDir,
-                                            cfg->user, cfg->group,
-                                            hvCPU, cpu, failIncompatible);
-    } else {
-        virReportError(VIR_ERR_OPERATION_UNSUPPORTED,
-                       _("comparing with the hypervisor CPU is not supported for arch %1$s"),
-                       virArchToString(arch));
+        return qemuConnectCPUModelComparison(qemuCaps, cfg->libDir,
+                                             cfg->user, cfg->group,
+                                             hvCPU, cpu, failIncompatible);
     }
 
- cleanup:
-    virCPUDefFree(cpu);
-    return ret;
+    virReportError(VIR_ERR_OPERATION_UNSUPPORTED,
+                   _("comparing with the hypervisor CPU is not supported for arch %1$s"),
+                   virArchToString(arch));
+    return VIR_CPU_COMPARE_ERROR;
 }
 
 
-- 
2.47.0




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux