[PATCH 2/5] domain_capabilities: Rework virDomainCapsCPUCustomFormat()

Michal Privoznik via Devel posted 5 patches 1 week, 4 days ago
[PATCH 2/5] domain_capabilities: Rework virDomainCapsCPUCustomFormat()
Posted by Michal Privoznik via Devel 1 week, 4 days ago
From: Michal Privoznik <mprivozn@redhat.com>

Make the virDomainCapsCPUCustomFormat() function use
virXMLFormatElement() family of functions.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---
 src/conf/domain_capabilities.c | 26 +++++++++++++++-----------
 1 file changed, 15 insertions(+), 11 deletions(-)

diff --git a/src/conf/domain_capabilities.c b/src/conf/domain_capabilities.c
index 5a94edf9bc..443e6dcd8e 100644
--- a/src/conf/domain_capabilities.c
+++ b/src/conf/domain_capabilities.c
@@ -447,35 +447,39 @@ virDomainCapsCPUCustomFormat(virBuffer *buf,
     size_t i;
 
     for (i = 0; i < custom->nmodels; i++) {
+        g_auto(virBuffer) attrBuf = VIR_BUFFER_INITIALIZER;
+        g_auto(virBuffer) childBuf = VIR_BUFFER_INITIALIZER;
         virDomainCapsCPUModel *model = custom->models + i;
 
-        virBufferAsprintf(buf, "<model usable='%s'",
+        virBufferAsprintf(&attrBuf, " usable='%s'",
                           virDomainCapsCPUUsableTypeToString(model->usable));
 
         if (model->deprecated)
-            virBufferAddLit(buf, " deprecated='yes'");
+            virBufferAddLit(&attrBuf, " deprecated='yes'");
 
         if (model->vendor)
-            virBufferAsprintf(buf, " vendor='%s'", model->vendor);
+            virBufferAsprintf(&attrBuf, " vendor='%s'", model->vendor);
         else
-            virBufferAddLit(buf, " vendor='unknown'");
+            virBufferAddLit(&attrBuf, " vendor='unknown'");
 
         if (model->canonical)
-            virBufferAsprintf(buf, " canonical='%s'", model->canonical);
+            virBufferAsprintf(&attrBuf, " canonical='%s'", model->canonical);
 
-        virBufferAsprintf(buf, ">%s</model>\n", model->name);
+        virBufferAddStr(&childBuf, model->name);
+
+        virXMLFormatElementDirect(buf, "model", &attrBuf, &childBuf);
 
         if (model->blockers) {
+            g_auto(virBuffer) blockerAttrBuf = VIR_BUFFER_INITIALIZER;
+            g_auto(virBuffer) blockerChildBuf = VIR_BUFFER_INIT_CHILD(buf);
             char **blocker;
 
-            virBufferAsprintf(buf, "<blockers model='%s'>\n", model->name);
-            virBufferAdjustIndent(buf, 2);
+            virBufferAsprintf(&blockerAttrBuf, " model='%s'", model->name);
 
             for (blocker = model->blockers; *blocker; blocker++)
-                virBufferAsprintf(buf, "<feature name='%s'/>\n", *blocker);
+                virBufferAsprintf(&blockerChildBuf, "<feature name='%s'/>\n", *blocker);
 
-            virBufferAdjustIndent(buf, -2);
-            virBufferAddLit(buf, "</blockers>\n");
+            virXMLFormatElement(buf, "blockers", &blockerAttrBuf, &blockerChildBuf);
         }
     }
 }
-- 
2.51.0
Re: [PATCH 2/5] domain_capabilities: Rework virDomainCapsCPUCustomFormat()
Posted by Peter Krempa via Devel 1 week, 4 days ago
On Mon, Nov 10, 2025 at 09:39:47 +0100, Michal Privoznik via Devel wrote:
> From: Michal Privoznik <mprivozn@redhat.com>
> 
> Make the virDomainCapsCPUCustomFormat() function use
> virXMLFormatElement() family of functions.
> 
> Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
> ---
>  src/conf/domain_capabilities.c | 26 +++++++++++++++-----------
>  1 file changed, 15 insertions(+), 11 deletions(-)

Reviewed-by: Peter Krempa <pkrempa@redhat.com>