]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: Flatten qemuMonitorCPUDefs.cpus
authorJiri Denemark <jdenemar@redhat.com>
Tue, 24 Sep 2019 11:45:37 +0000 (13:45 +0200)
committerJiri Denemark <jdenemar@redhat.com>
Wed, 20 Nov 2019 16:22:05 +0000 (17:22 +0100)
Let's store qemuMonitorCPUDefInfo directly in the array of CPUs in
qemuMonitorCPUDefs rather then using an array of pointers.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/qemu/qemu_capabilities.c
src/qemu/qemu_monitor.c
src/qemu/qemu_monitor.h
src/qemu/qemu_monitor_json.c
tests/qemumonitorjsontest.c

index 6a2fdc893976fe110f2d03f58bec8f457b6a9b4e..9fe19d77947bffb2088bfb4ffd3e41444967ea88 100644 (file)
@@ -2472,11 +2472,11 @@ virQEMUCapsFetchCPUDefinitions(qemuMonitorPtr mon,
 
         for (name = libvirtModels; name && *name; name++) {
             for (i = 0; i < defs->ncpus; i++) {
-                if (STRCASENEQ(defs->cpus[i]->name, *name))
+                if (STRCASENEQ(defs->cpus[i].name, *name))
                     continue;
 
-                VIR_FREE(defs->cpus[i]->name);
-                defs->cpus[i]->name = g_strdup(*name);
+                VIR_FREE(defs->cpus[i].name);
+                defs->cpus[i].name = g_strdup(*name);
             }
         }
     }
@@ -2487,13 +2487,13 @@ virQEMUCapsFetchCPUDefinitions(qemuMonitorPtr mon,
     for (i = 0; i < defs->ncpus; i++) {
         virDomainCapsCPUUsable usable = VIR_DOMCAPS_CPU_USABLE_UNKNOWN;
 
-        if (defs->cpus[i]->usable == VIR_TRISTATE_BOOL_YES)
+        if (defs->cpus[i].usable == VIR_TRISTATE_BOOL_YES)
             usable = VIR_DOMCAPS_CPU_USABLE_YES;
-        else if (defs->cpus[i]->usable == VIR_TRISTATE_BOOL_NO)
+        else if (defs->cpus[i].usable == VIR_TRISTATE_BOOL_NO)
             usable = VIR_DOMCAPS_CPU_USABLE_NO;
 
-        if (virDomainCapsCPUModelsAddSteal(models, &defs->cpus[i]->name, usable,
-                                           &defs->cpus[i]->blockers) < 0)
+        if (virDomainCapsCPUModelsAddSteal(models, &defs->cpus[i].name, usable,
+                                           &defs->cpus[i].blockers) < 0)
             goto cleanup;
     }
 
index 2ee166592cc5e25219de7967974dcef7e9aa9601..77b40638e8792e03a4ec360501e142c5e2981606 100644 (file)
@@ -3569,9 +3569,8 @@ qemuMonitorCPUDefsFree(qemuMonitorCPUDefsPtr defs)
         return;
 
     for (i = 0; i < defs->ncpus; i++) {
-        g_strfreev(defs->cpus[i]->blockers);
-        g_free(defs->cpus[i]->name);
-        g_free(defs->cpus[i]);
+        g_strfreev(defs->cpus[i].blockers);
+        g_free(defs->cpus[i].name);
     }
 
     g_free(defs->cpus);
@@ -3585,7 +3584,7 @@ qemuMonitorCPUDefsNew(size_t count)
     g_autoptr(qemuMonitorCPUDefs) defs = NULL;
 
     defs = g_new0(qemuMonitorCPUDefs, 1);
-    defs->cpus = g_new0(qemuMonitorCPUDefInfoPtr, count);
+    defs->cpus = g_new0(qemuMonitorCPUDefInfo, count);
     defs->ncpus = count;
 
     return g_steal_pointer(&defs);
index 058656e75ec3c639744460dcffc7d941fca3936f..588ee802607f3ff7e50f6e95d44183f8445c3910 100644 (file)
@@ -1097,7 +1097,7 @@ typedef struct _qemuMonitorCPUDefs qemuMonitorCPUDefs;
 typedef qemuMonitorCPUDefs *qemuMonitorCPUDefsPtr;
 struct _qemuMonitorCPUDefs {
     size_t ncpus;
-    qemuMonitorCPUDefInfoPtr *cpus;
+    qemuMonitorCPUDefInfoPtr cpus;
 };
 
 int qemuMonitorGetCPUDefinitions(qemuMonitorPtr mon,
index 2a4c70ef26cdba5c74ed38ee8eb3790f50e993b0..3f523257d085f662e193ca9637da78214ab78b56 100644 (file)
@@ -5607,12 +5607,7 @@ qemuMonitorJSONGetCPUDefinitions(qemuMonitorPtr mon,
     for (i = 0; i < defs->ncpus; i++) {
         virJSONValuePtr child = virJSONValueArrayGet(data, i);
         const char *tmp;
-        qemuMonitorCPUDefInfoPtr cpu;
-
-        if (VIR_ALLOC(cpu) < 0)
-            return -1;
-
-        defs->cpus[i] = cpu;
+        qemuMonitorCPUDefInfoPtr cpu = defs->cpus + i;
 
         if (!(tmp = virJSONValueObjectGetString(child, "name"))) {
             virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
index ec5ce5b7dbd4a40b429a67bd45700fe71ead628b..4646d3a55e77dd481690ec802133661099179eb9 100644 (file)
@@ -463,16 +463,16 @@ testQemuMonitorJSONGetCPUDefinitions(const void *opaque)
 
 #define CHECK_FULL(i, wantname, Usable) \
     do { \
-        if (STRNEQ(defs->cpus[i]->name, (wantname))) { \
+        if (STRNEQ(defs->cpus[i].name, (wantname))) { \
             virReportError(VIR_ERR_INTERNAL_ERROR, \
                            "name %s is not %s", \
-                           defs->cpus[i]->name, (wantname)); \
+                           defs->cpus[i].name, (wantname)); \
             return -1; \
         } \
-        if (defs->cpus[i]->usable != (Usable)) { \
+        if (defs->cpus[i].usable != (Usable)) { \
             virReportError(VIR_ERR_INTERNAL_ERROR, \
                            "%s: expecting usable flag %d, got %d", \
-                           defs->cpus[i]->name, Usable, defs->cpus[i]->usable); \
+                           defs->cpus[i].name, Usable, defs->cpus[i].usable); \
             return -1; \
         } \
     } while (0)