]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: Use g_autoptr() for qemuDomainSaveCookie
authorMichal Privoznik <mprivozn@redhat.com>
Mon, 13 Jan 2020 10:06:39 +0000 (11:06 +0100)
committerMichal Privoznik <mprivozn@redhat.com>
Thu, 16 Jan 2020 08:17:07 +0000 (09:17 +0100)
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
src/qemu/qemu_domain.c
src/qemu/qemu_domain.h
src/qemu/qemu_driver.c

index a6dde15bad1929e854d9dc1ec8beeb2d8333f284..128bcaee7d22beb1e1e27b1f01cda0e75abee8ad 100644 (file)
@@ -15997,27 +15997,23 @@ qemuDomainSaveCookiePtr
 qemuDomainSaveCookieNew(virDomainObjPtr vm)
 {
     qemuDomainObjPrivatePtr priv = vm->privateData;
-    qemuDomainSaveCookiePtr cookie = NULL;
+    g_autoptr(qemuDomainSaveCookie) cookie = NULL;
 
     if (qemuDomainInitialize() < 0)
-        goto error;
+        return NULL;
 
     if (!(cookie = virObjectNew(qemuDomainSaveCookieClass)))
-        goto error;
+        return NULL;
 
     if (priv->origCPU && !(cookie->cpu = virCPUDefCopy(vm->def->cpu)))
-        goto error;
+        return NULL;
 
     cookie->slirpHelper = qemuDomainGetSlirpHelperOk(vm);
 
     VIR_DEBUG("Save cookie %p, cpu=%p, slirpHelper=%d",
               cookie, cookie->cpu, cookie->slirpHelper);
 
-    return cookie;
-
- error:
-    virObjectUnref(cookie);
-    return NULL;
+    return g_steal_pointer(&cookie);
 }
 
 
@@ -16025,26 +16021,22 @@ static int
 qemuDomainSaveCookieParse(xmlXPathContextPtr ctxt G_GNUC_UNUSED,
                           virObjectPtr *obj)
 {
-    qemuDomainSaveCookiePtr cookie = NULL;
+    g_autoptr(qemuDomainSaveCookie) cookie = NULL;
 
     if (qemuDomainInitialize() < 0)
-        goto error;
+        return -1;
 
     if (!(cookie = virObjectNew(qemuDomainSaveCookieClass)))
-        goto error;
+        return -1;
 
     if (virCPUDefParseXML(ctxt, "./cpu[1]", VIR_CPU_TYPE_GUEST,
                           &cookie->cpu) < 0)
-        goto error;
+        return -1;
 
     cookie->slirpHelper = virXPathBoolean("boolean(./slirpHelper)", ctxt) > 0;
 
-    *obj = (virObjectPtr) cookie;
+    *obj = (virObjectPtr) g_steal_pointer(&cookie);
     return 0;
-
- error:
-    virObjectUnref(cookie);
-    return -1;
 }
 
 
index c6afc484f6e3225450c900961251ae2e71073018..60b80297fabfc9d294fc9082895e3c5ede3aa909 100644 (file)
@@ -610,6 +610,7 @@ struct _qemuDomainSaveCookie {
     bool slirpHelper;
 };
 
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(qemuDomainSaveCookie, virObjectUnref);
 
 typedef struct _qemuDomainXmlNsDef qemuDomainXmlNsDef;
 typedef qemuDomainXmlNsDef *qemuDomainXmlNsDefPtr;
index 3c1fb11b1086d62e9a896c4cd72cf3588ee56499..99829ad2290ef9c8d931ec0dacc5d623da69893a 100644 (file)
@@ -3293,7 +3293,7 @@ qemuDomainSaveInternal(virQEMUDriverPtr driver,
     virObjectEventPtr event = NULL;
     qemuDomainObjPrivatePtr priv = vm->privateData;
     virQEMUSaveDataPtr data = NULL;
-    qemuDomainSaveCookiePtr cookie = NULL;
+    g_autoptr(qemuDomainSaveCookie) cookie = NULL;
 
     if (!qemuMigrationSrcIsAllowed(driver, vm, false, 0))
         goto cleanup;
@@ -3399,7 +3399,6 @@ qemuDomainSaveInternal(virQEMUDriverPtr driver,
         qemuDomainRemoveInactiveJob(driver, vm);
 
  cleanup:
-    virObjectUnref(cookie);
     virQEMUSaveDataFree(data);
     virObjectEventStateQueue(driver->domainEventState, event);
     return ret;
@@ -6808,7 +6807,7 @@ qemuDomainSaveImageStartVM(virConnectPtr conn,
     g_autofree char *errbuf = NULL;
     g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver);
     virQEMUSaveHeaderPtr header = &data->header;
-    qemuDomainSaveCookiePtr cookie = NULL;
+    g_autoptr(qemuDomainSaveCookie) cookie = NULL;
 
     if (virSaveCookieParseString(data->cookie, (virObjectPtr *)&cookie,
                                  virDomainXMLOptionGetSaveCookie(driver->xmlopt)) < 0)
@@ -6919,7 +6918,6 @@ qemuDomainSaveImageStartVM(virConnectPtr conn,
     ret = 0;
 
  cleanup:
-    virObjectUnref(cookie);
     if (qemuSecurityRestoreSavedStateLabel(driver, vm, path) < 0)
         VIR_WARN("failed to restore save state label on %s", path);
     return ret;