]> xenbits.xensource.com Git - libvirt.git/commitdiff
conf: Refactor virDomainHubDefFormat
authorPeter Krempa <pkrempa@redhat.com>
Tue, 5 Mar 2019 09:17:31 +0000 (10:17 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Wed, 6 Mar 2019 14:53:52 +0000 (15:53 +0100)
Use virXMLFormatElement to format the internals along with simplifying
cleanup code paths.

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

index 83e11f603f1679a5e35bd637f2ad7712f9352459..5d745f8bce961c58a1059d4ce2e5a619d0455a7c 100644 (file)
@@ -26976,38 +26976,23 @@ virDomainHubDefFormat(virBufferPtr buf,
                       unsigned int flags)
 {
     const char *type = virDomainHubTypeToString(def->type);
-    virBuffer childBuf = VIR_BUFFER_INITIALIZER;
-    int ret = -1;
+    VIR_AUTOCLEAN(virBuffer) attrBuf = VIR_BUFFER_INITIALIZER;
+    VIR_AUTOCLEAN(virBuffer) childBuf = VIR_BUFFER_INITIALIZER;
 
     virBufferSetChildIndent(&childBuf, buf);
 
     if (!type) {
         virReportError(VIR_ERR_INTERNAL_ERROR,
                        _("unexpected hub type %d"), def->type);
-        goto cleanup;
+        return -1;
     }
 
     if (virDomainDeviceInfoFormat(&childBuf, &def->info, flags) < 0)
-        goto cleanup;
-
-    if (virBufferCheckError(&childBuf) < 0)
-        goto cleanup;
-
-    virBufferAsprintf(buf, "<hub type='%s'", type);
-    if (virBufferUse(&childBuf)) {
-        virBufferAddLit(buf, ">\n");
-        virBufferAddBuffer(buf, &childBuf);
-        virBufferAddLit(buf, "</hub>\n");
-    } else {
-        virBufferAddLit(buf, "/>\n");
-    }
-
-    ret = 0;
+        return -1;
 
- cleanup:
-    virBufferFreeAndReset(&childBuf);
+    virBufferAsprintf(&attrBuf, " type='%s'", type);
 
-    return ret;
+    return virXMLFormatElement(buf, "hub", &attrBuf, &childBuf);
 }