[libvirt PATCH 03/10] virDomainMemoryDefParseXML: Use virXMLProp*

Tim Wiederhake twiederh at redhat.com
Tue May 4 14:02:28 UTC 2021


Signed-off-by: Tim Wiederhake <twiederh at redhat.com>
---
 src/conf/domain_conf.c | 41 ++++++++---------------------------------
 1 file changed, 8 insertions(+), 33 deletions(-)

diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 8930dc33ce..b8ac399f5c 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -15040,48 +15040,24 @@ virDomainMemoryDefParseXML(virDomainXMLOption *xmlopt,
     VIR_XPATH_NODE_AUTORESTORE(ctxt)
     xmlNodePtr node;
     virDomainMemoryDef *def;
-    int val;
     g_autofree char *tmp = NULL;
 
     def = g_new0(virDomainMemoryDef, 1);
 
     ctxt->node = memdevNode;
 
-    if (!(tmp = virXMLPropString(memdevNode, "model"))) {
-        virReportError(VIR_ERR_XML_ERROR, "%s",
-                       _("missing memory model"));
+    if (virXMLPropEnum(memdevNode, "model", virDomainMemoryModelTypeFromString,
+                       VIR_XML_PROP_REQUIRED | VIR_XML_PROP_NONZERO,
+                       &def->model) < 0)
         goto error;
-    }
 
-    if ((val = virDomainMemoryModelTypeFromString(tmp)) <= 0) {
-        virReportError(VIR_ERR_XML_ERROR,
-                       _("invalid memory model '%s'"), tmp);
+    if (virXMLPropEnum(memdevNode, "access", virDomainMemoryAccessTypeFromString,
+                       VIR_XML_PROP_NONZERO, &def->access) < 0)
         goto error;
-    }
-    VIR_FREE(tmp);
-    def->model = val;
-
-    if ((tmp = virXMLPropString(memdevNode, "access"))) {
-        if ((val = virDomainMemoryAccessTypeFromString(tmp)) <= 0) {
-            virReportError(VIR_ERR_XML_ERROR,
-                           _("invalid access mode '%s'"), tmp);
-            goto error;
-        }
 
-        def->access = val;
-    }
-    VIR_FREE(tmp);
-
-    if ((tmp = virXMLPropString(memdevNode, "discard"))) {
-        if ((val = virTristateBoolTypeFromString(tmp)) <= 0) {
-            virReportError(VIR_ERR_XML_ERROR,
-                           _("invalid discard value '%s'"), tmp);
-            goto error;
-        }
-
-        def->discard = val;
-    }
-    VIR_FREE(tmp);
+    if (virXMLPropTristateBool(memdevNode, "discard", VIR_XML_PROP_NONE,
+                               &def->discard) < 0)
+        goto error;
 
     /* Extract NVDIMM UUID. */
     if (def->model == VIR_DOMAIN_MEMORY_MODEL_NVDIMM &&
@@ -15094,7 +15070,6 @@ virDomainMemoryDefParseXML(virDomainXMLOption *xmlopt,
             goto error;
         }
     }
-    VIR_FREE(tmp);
 
     /* source */
     if ((node = virXPathNode("./source", ctxt)) &&
-- 
2.26.3




More information about the libvir-list mailing list