[PATCH 2/6] qemuMigrationCookieNew: Refactor allocation and cleanup

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

 



Move around some code so that we can get rid of the 'cleanup:' label.

Signed-off-by: Peter Krempa <pkrempa@xxxxxxxxxx>
---
 src/qemu/qemu_migration_cookie.c | 35 ++++++++++++++++----------------
 1 file changed, 17 insertions(+), 18 deletions(-)

diff --git a/src/qemu/qemu_migration_cookie.c b/src/qemu/qemu_migration_cookie.c
index 124f61e3ea..a04b74f092 100644
--- a/src/qemu/qemu_migration_cookie.c
+++ b/src/qemu/qemu_migration_cookie.c
@@ -280,31 +280,30 @@ qemuMigrationCookieNew(const virDomainDef *def,
                        const char *origname)
 {
     qemuMigrationCookiePtr mig = NULL;
-    const char *name;
+    unsigned char localHostUUID[VIR_UUID_BUFLEN];
+    g_autofree char *localHostname = NULL;

-    if (VIR_ALLOC(mig) < 0)
-        goto error;
-
-    if (origname)
-        name = origname;
-    else
-        name = def->name;
-    mig->name = g_strdup(name);
-    memcpy(mig->uuid, def->uuid, VIR_UUID_BUFLEN);
+    if (!(localHostname = virGetHostname()))
+        return NULL;

-    if (!(mig->localHostname = virGetHostname()))
-        goto error;
-    if (virGetHostUUID(mig->localHostuuid) < 0) {
+    if (virGetHostUUID(localHostUUID) < 0) {
         virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
                        _("Unable to obtain host UUID"));
-        goto error;
+        return NULL;
     }

-    return mig;
+    mig = g_new0(qemuMigrationCookie, 1);

- error:
-    qemuMigrationCookieFree(mig);
-    return NULL;
+    if (origname)
+        mig->name = g_strdup(origname);
+    else
+        mig->name = g_strdup(def->name);
+
+    memcpy(mig->uuid, def->uuid, VIR_UUID_BUFLEN);
+    memcpy(mig->localHostuuid, localHostUUID, VIR_UUID_BUFLEN);
+    mig->localHostname = g_steal_pointer(&localHostname);
+
+    return mig;
 }


-- 
2.26.2




[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