]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemuMonitorJSONBlockInfoAdd: Refactor hash table addition
authorPeter Krempa <pkrempa@redhat.com>
Wed, 13 Oct 2021 13:25:15 +0000 (15:25 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Mon, 1 Nov 2021 15:14:53 +0000 (16:14 +0100)
Open code virHashAddEntry so that the error code path can be avoided.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/qemu/qemu_monitor_json.c

index 19af6219aac1f8dbf4671d351d7dc7c2223648a8..962876b43a7f489f1e889d329d0eb0ab26560f53 100644 (file)
@@ -2220,27 +2220,21 @@ qemuMonitorJSONBlockInfoAdd(GHashTable *table,
                             const char *entryname)
 {
     struct qemuDomainDiskInfo *tmp = NULL;
-    int ret = -1;
+
+    if (g_hash_table_contains(table, entryname)) {
+        virReportError(VIR_ERR_INTERNAL_ERROR,
+                       _("Duplicate block info for '%s'"), entryname);
+        return -1;
+    }
 
     tmp = g_new0(struct qemuDomainDiskInfo, 1);
 
     *tmp = *info;
-    tmp->nodename = NULL;
-
-    if (info->nodename)
-        tmp->nodename = g_strdup(info->nodename);
+    tmp->nodename = g_strdup(info->nodename);
 
-    if (virHashAddEntry(table, entryname, tmp) < 0)
-        goto cleanup;
-
-    tmp = NULL;
-    ret = 0;
+    g_hash_table_insert(table, g_strdup(entryname), tmp);
 
- cleanup:
-    if (tmp)
-        VIR_FREE(tmp->nodename);
-    VIR_FREE(tmp);
-    return ret;
+    return 0;
 }