[PATCH 4/7] virDomainDefValidateAliases: Refactor to avoid cleanup section

Peter Krempa pkrempa at redhat.com
Fri Jul 23 09:05:47 UTC 2021


Use a temporary auto-freed local variable to hold the hash table so that
the cleanup section can be removed.

Signed-off-by: Peter Krempa <pkrempa at redhat.com>
---
 src/conf/domain_validate.c | 15 +++++----------
 1 file changed, 5 insertions(+), 10 deletions(-)

diff --git a/src/conf/domain_validate.c b/src/conf/domain_validate.c
index aab377fbbd..a9e4519b1a 100644
--- a/src/conf/domain_validate.c
+++ b/src/conf/domain_validate.c
@@ -1257,25 +1257,20 @@ static int
 virDomainDefValidateAliases(const virDomainDef *def,
                             GHashTable **aliases)
 {
-    struct virDomainDefValidateAliasesData data;
-    int ret = -1;
-
     /* We are not storing copies of aliases. Don't free them. */
-    data.aliases = virHashNew(NULL);
+    g_autoptr(GHashTable) tmpaliases = virHashNew(NULL);
+    struct virDomainDefValidateAliasesData data = { .aliases = tmpaliases };

     if (virDomainDeviceInfoIterateFlags((virDomainDef *) def,
                                         virDomainDeviceDefValidateAliasesIterator,
                                         DOMAIN_DEVICE_ITERATE_ALL_CONSOLES,
                                         &data) < 0)
-        goto cleanup;
+        return -1;

     if (aliases)
-        *aliases = g_steal_pointer(&data.aliases);
+        *aliases = g_steal_pointer(&tmpaliases);

-    ret = 0;
- cleanup:
-    virHashFree(data.aliases);
-    return ret;
+    return 0;
 }


-- 
2.31.1




More information about the libvir-list mailing list