[libvirt] [PATCH 4/4] qemu: monitor: Use VIR_AUTOPTR in qemuMonitorJSON(Drive/Blockdev)Mirror

Peter Krempa posted 4 patches 6 years, 8 months ago
[libvirt] [PATCH 4/4] qemu: monitor: Use VIR_AUTOPTR in qemuMonitorJSON(Drive/Blockdev)Mirror
Posted by Peter Krempa 6 years, 8 months ago
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
---
 src/qemu/qemu_monitor_json.c | 71 ++++++++++++++----------------------
 1 file changed, 28 insertions(+), 43 deletions(-)

diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c
index 4152d44331..4f9a0cb960 100644
--- a/src/qemu/qemu_monitor_json.c
+++ b/src/qemu/qemu_monitor_json.c
@@ -4280,34 +4280,25 @@ qemuMonitorJSONDriveMirror(qemuMonitorPtr mon,
                            bool shallow,
                            bool reuse)
 {
-    int ret = -1;
-    virJSONValuePtr cmd;
-    virJSONValuePtr reply = NULL;
+    VIR_AUTOPTR(virJSONValue) cmd = NULL;
+    VIR_AUTOPTR(virJSONValue) reply = NULL;

-    cmd = qemuMonitorJSONMakeCommand("drive-mirror",
-                                     "s:device", device,
-                                     "s:target", file,
-                                     "Y:speed", speed,
-                                     "z:granularity", granularity,
-                                     "P:buf-size", buf_size,
-                                     "s:sync", shallow ? "top" : "full",
-                                     "s:mode", reuse ? "existing" : "absolute-paths",
-                                     "S:format", format,
-                                     NULL);
-    if (!cmd)
+    if (!(cmd = qemuMonitorJSONMakeCommand("drive-mirror",
+                                           "s:device", device,
+                                           "s:target", file,
+                                           "Y:speed", speed,
+                                           "z:granularity", granularity,
+                                           "P:buf-size", buf_size,
+                                           "s:sync", shallow ? "top" : "full",
+                                           "s:mode", reuse ? "existing" : "absolute-paths",
+                                           "S:format", format,
+                                           NULL)))
         return -1;

     if (qemuMonitorJSONCommand(mon, cmd, &reply) < 0)
-        goto cleanup;
-
-    if (qemuMonitorJSONCheckError(cmd, reply) < 0)
-        goto cleanup;
+        return -1;

-    ret = 0;
- cleanup:
-    virJSONValueFree(cmd);
-    virJSONValueFree(reply);
-    return ret;
+    return qemuMonitorJSONCheckError(cmd, reply);
 }


@@ -4321,30 +4312,24 @@ qemuMonitorJSONBlockdevMirror(qemuMonitorPtr mon,
                               unsigned long long buf_size,
                               bool shallow)
 {
-    int ret = -1;
-    virJSONValuePtr cmd;
-    virJSONValuePtr reply = NULL;
+    VIR_AUTOPTR(virJSONValue) cmd = NULL;
+    VIR_AUTOPTR(virJSONValue) reply = NULL;

-    cmd = qemuMonitorJSONMakeCommand("blockdev-mirror",
-                                     "S:job-id", jobname,
-                                     "s:device", device,
-                                     "s:target", target,
-                                     "Y:speed", speed,
-                                     "z:granularity", granularity,
-                                     "P:buf-size", buf_size,
-                                     "s:sync", shallow ? "top" : "full",
-                                     NULL);
-    if (!cmd)
+    if (!(cmd = qemuMonitorJSONMakeCommand("blockdev-mirror",
+                                           "S:job-id", jobname,
+                                           "s:device", device,
+                                           "s:target", target,
+                                           "Y:speed", speed,
+                                           "z:granularity", granularity,
+                                           "P:buf-size", buf_size,
+                                           "s:sync", shallow ? "top" : "full",
+                                           NULL)))
         return -1;

-    if ((ret = qemuMonitorJSONCommand(mon, cmd, &reply)) < 0)
-        goto cleanup;
-    ret = qemuMonitorJSONCheckError(cmd, reply);
+    if (qemuMonitorJSONCommand(mon, cmd, &reply) < 0)
+        return -1;

- cleanup:
-    virJSONValueFree(cmd);
-    virJSONValueFree(reply);
-    return ret;
+    return qemuMonitorJSONCheckError(cmd, reply);
 }


-- 
2.21.0

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH 4/4] qemu: monitor: Use VIR_AUTOPTR in qemuMonitorJSON(Drive/Blockdev)Mirror
Posted by Ján Tomko 6 years, 8 months ago
On Mon, May 20, 2019 at 04:16:33PM +0200, Peter Krempa wrote:
>Signed-off-by: Peter Krempa <pkrempa@redhat.com>
>---
> src/qemu/qemu_monitor_json.c | 71 ++++++++++++++----------------------
> 1 file changed, 28 insertions(+), 43 deletions(-)
>
>diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c
>index 4152d44331..4f9a0cb960 100644
>--- a/src/qemu/qemu_monitor_json.c
>+++ b/src/qemu/qemu_monitor_json.c
>@@ -4280,34 +4280,25 @@ qemuMonitorJSONDriveMirror(qemuMonitorPtr mon,
>                            bool shallow,
>                            bool reuse)
> {
>-    int ret = -1;
>-    virJSONValuePtr cmd;
>-    virJSONValuePtr reply = NULL;
>+    VIR_AUTOPTR(virJSONValue) cmd = NULL;
>+    VIR_AUTOPTR(virJSONValue) reply = NULL;
>

>-    cmd = qemuMonitorJSONMakeCommand("drive-mirror",
>-                                     "s:device", device,
>-                                     "s:target", file,
>-                                     "Y:speed", speed,
>-                                     "z:granularity", granularity,
>-                                     "P:buf-size", buf_size,
>-                                     "s:sync", shallow ? "top" : "full",
>-                                     "s:mode", reuse ? "existing" : "absolute-paths",
>-                                     "S:format", format,
>-                                     NULL);
>-    if (!cmd)
>+    if (!(cmd = qemuMonitorJSONMakeCommand("drive-mirror",
>+                                           "s:device", device,
>+                                           "s:target", file,
>+                                           "Y:speed", speed,
>+                                           "z:granularity", granularity,
>+                                           "P:buf-size", buf_size,
>+                                           "s:sync", shallow ? "top" : "full",
>+                                           "s:mode", reuse ? "existing" : "absolute-paths",
>+                                           "S:format", format,
>+                                           NULL)))
>         return -1;
>

Merging the assignment and the condition is not necessary for using AUTOPTR.

>     if (qemuMonitorJSONCommand(mon, cmd, &reply) < 0)
>-        goto cleanup;
>-
>-    if (qemuMonitorJSONCheckError(cmd, reply) < 0)
>-        goto cleanup;
>+        return -1;
>
>-    ret = 0;
>- cleanup:
>-    virJSONValueFree(cmd);
>-    virJSONValueFree(reply);
>-    return ret;
>+    return qemuMonitorJSONCheckError(cmd, reply);
> }
>
>
>@@ -4321,30 +4312,24 @@ qemuMonitorJSONBlockdevMirror(qemuMonitorPtr mon,
>                               unsigned long long buf_size,
>                               bool shallow)
> {
>-    int ret = -1;
>-    virJSONValuePtr cmd;
>-    virJSONValuePtr reply = NULL;
>+    VIR_AUTOPTR(virJSONValue) cmd = NULL;
>+    VIR_AUTOPTR(virJSONValue) reply = NULL;
>
>-    cmd = qemuMonitorJSONMakeCommand("blockdev-mirror",
>-                                     "S:job-id", jobname,
>-                                     "s:device", device,
>-                                     "s:target", target,
>-                                     "Y:speed", speed,
>-                                     "z:granularity", granularity,
>-                                     "P:buf-size", buf_size,
>-                                     "s:sync", shallow ? "top" : "full",
>-                                     NULL);
>-    if (!cmd)
>+    if (!(cmd = qemuMonitorJSONMakeCommand("blockdev-mirror",
>+                                           "S:job-id", jobname,
>+                                           "s:device", device,
>+                                           "s:target", target,
>+                                           "Y:speed", speed,
>+                                           "z:granularity", granularity,
>+                                           "P:buf-size", buf_size,
>+                                           "s:sync", shallow ? "top" : "full",
>+                                           NULL)))
>         return -1;

Same here.

>

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

Jano
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list