]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
virsh: qemu-monitor-command: Simplify control flow
authorPeter Krempa <pkrempa@redhat.com>
Mon, 1 Aug 2016 04:24:35 +0000 (06:24 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Tue, 2 Aug 2016 11:59:27 +0000 (13:59 +0200)
Construct the query string by using virBufferTrim rather than having to
remember to add a space and simplify cleanup path.

tools/virsh-domain.c

index 6c1bc2f3097f433ed0849dc14eabc4e3b36dce22..9c496b90dd3b62062c757d5603d7c05d4320b176 100644 (file)
@@ -8942,21 +8942,18 @@ cmdQemuMonitorCommand(vshControl *ctl, const vshCmd *cmd)
     unsigned int flags = 0;
     const vshCmdOpt *opt = NULL;
     virBuffer buf = VIR_BUFFER_INITIALIZER;
-    bool pad = false;
     virJSONValuePtr pretty = NULL;
 
     VSH_EXCLUSIVE_OPTIONS("hmp", "pretty");
 
-    dom = virshCommandOptDomain(ctl, cmd, NULL);
-    if (dom == NULL)
-        goto cleanup;
+    if (!(dom = virshCommandOptDomain(ctl, cmd, NULL)))
+        return false;
+
+    while ((opt = vshCommandOptArgv(ctl, cmd, opt)))
+        virBufferAsprintf(&buf, "%s ", opt->data);
+
+    virBufferTrim(&buf, " ", -1);
 
-    while ((opt = vshCommandOptArgv(ctl, cmd, opt))) {
-        if (pad)
-            virBufferAddChar(&buf, ' ');
-        pad = true;
-        virBufferAdd(&buf, opt->data, -1);
-    }
     if (virBufferError(&buf)) {
         vshPrint(ctl, "%s", _("Failed to collect command"));
         goto cleanup;
@@ -8987,8 +8984,7 @@ cmdQemuMonitorCommand(vshControl *ctl, const vshCmd *cmd)
     VIR_FREE(result);
     VIR_FREE(monitor_cmd);
     virJSONValueFree(pretty);
-    if (dom)
-        virDomainFree(dom);
+    virDomainFree(dom);
 
     return ret;
 }