[libvirt] [PATCH v2 10/31] qemu: Introduce qemuMonitorCPUDefs struct

Ján Tomko jtomko at redhat.com
Wed Oct 16 11:05:10 UTC 2019


On Tue, Oct 15, 2019 at 05:34:46PM +0200, Jiri Denemark wrote:
>It is a container for a CPU models list (qemuMonitorCPUDefInfo) and a
>number of elements in this list.
>
>Signed-off-by: Jiri Denemark <jdenemar at redhat.com>
>Reviewed-by: Ján Tomko <jtomko at redhat.com>
>---
>
>Notes:
>    Version 2:
>    - v1 reviewed by Ján Tomko, but the patch had to be changed because
>      of the previous patch
>
> src/qemu/qemu_capabilities.c | 30 +++++++++----------
> src/qemu/qemu_monitor.c      | 39 +++++++++++++++++++------
> src/qemu/qemu_monitor.h      | 14 +++++++--
> src/qemu/qemu_monitor_json.c | 56 ++++++++++++++----------------------
> src/qemu/qemu_monitor_json.h |  2 +-
> tests/qemumonitorjsontest.c  | 38 +++++++++---------------
> 6 files changed, 93 insertions(+), 86 deletions(-)
>

Reviewed-by: Ján Tomko <jtomko at redhat.com>

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 3384b538d0..e4e8d2ed0c 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -2457,7 +2457,7 @@ virQEMUCapsFetchCPUDefinitions(qemuMonitorPtr mon,
                                virArch arch,
                                virDomainCapsCPUModelsPtr *cpuModels)
 {
-    VIR_AUTOPTR(qemuMonitorCPUDefs) defs = NULL;
+    g_autoptr(qemuMonitorCPUDefs) defs = NULL;
     virDomainCapsCPUModelsPtr models = NULL;
     size_t i;
     int ret = -1;
diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c
index 2cce9af929..d1a53f82cb 100644
--- a/src/qemu/qemu_monitor.c
+++ b/src/qemu/qemu_monitor.c
@@ -3557,29 +3557,25 @@ qemuMonitorCPUDefsFree(qemuMonitorCPUDefsPtr defs)
         return;
 
     for (i = 0; i < defs->ncpus; i++) {
-        virStringListFree(defs->cpus[i]->blockers);
-        VIR_FREE(defs->cpus[i]->name);
-        VIR_FREE(defs->cpus[i]);
+        g_strfreev(defs->cpus[i]->blockers);
+        g_free(defs->cpus[i]->name);
+        g_free(defs->cpus[i]);
     }
 
-    VIR_FREE(defs->cpus);
-    VIR_FREE(defs);
+    g_free(defs->cpus);
+    g_free(defs);
 }
 
 
 qemuMonitorCPUDefsPtr
 qemuMonitorCPUDefsNew(size_t count)
 {
-    VIR_AUTOPTR(qemuMonitorCPUDefs) defs = NULL;
-
-    if (VIR_ALLOC(defs) < 0)
-        return NULL;
-
-    if (count > 0 && VIR_ALLOC_N(defs->cpus, count) < 0)
-        return NULL;
+    g_autoptr(qemuMonitorCPUDefs) defs = NULL;
 
+    defs = g_new0(qemuMonitorCPUDefs, 1);
+    defs->cpus = g_new0(qemuMonitorCPUDefInfoPtr, count);
     defs->ncpus = count;
-    VIR_RETURN_PTR(defs);
+    return g_steal_pointer(&defs);
 }
 
 
diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h
index 3bce9a971d..4fed575fd3 100644
--- a/src/qemu/qemu_monitor.h
+++ b/src/qemu/qemu_monitor.h
@@ -1112,7 +1112,7 @@ int qemuMonitorGetCPUDefinitions(qemuMonitorPtr mon,
                                  qemuMonitorCPUDefsPtr *cpuDefs);
 qemuMonitorCPUDefsPtr qemuMonitorCPUDefsNew(size_t count);
 void qemuMonitorCPUDefsFree(qemuMonitorCPUDefsPtr defs);
-VIR_DEFINE_AUTOPTR_FUNC(qemuMonitorCPUDefs, qemuMonitorCPUDefsFree);
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(qemuMonitorCPUDefs, qemuMonitorCPUDefsFree);
 
 
 typedef enum {
diff --git a/tests/qemumonitorjsontest.c b/tests/qemumonitorjsontest.c
index 104d3a9fc0..b114fabbe0 100644
--- a/tests/qemumonitorjsontest.c
+++ b/tests/qemumonitorjsontest.c
@@ -428,7 +428,7 @@ testQemuMonitorJSONGetCPUDefinitions(const void *opaque)
 {
     const testGenericData *data = opaque;
     virDomainXMLOptionPtr xmlopt = data->xmlopt;
-    VIR_AUTOPTR(qemuMonitorCPUDefs) defs = NULL;
+    g_autoptr(qemuMonitorCPUDefs) defs = NULL;
     g_autoptr(qemuMonitorTest) test = NULL;
 
     if (!(test = qemuMonitorTestNewSchema(xmlopt, data->schema)))

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20191016/cd59be3c/attachment-0001.sig>


More information about the libvir-list mailing list