]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
virDomainPerfEventDefParseXML: Use virXMLProp*
authorTim Wiederhake <twiederh@redhat.com>
Tue, 4 May 2021 14:02:27 +0000 (16:02 +0200)
committerMichal Privoznik <mprivozn@redhat.com>
Thu, 6 May 2021 11:54:33 +0000 (13:54 +0200)
Signed-off-by: Tim Wiederhake <twiederh@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
src/conf/domain_conf.c

index 926705aa54768a28fdd1f50107e77fdc200cb92a..f6aaadbcb6c3d018532a2afc8fe8d4edf5418212 100644 (file)
@@ -14629,39 +14629,24 @@ static int
 virDomainPerfEventDefParseXML(virDomainPerfDef *perf,
                               xmlNodePtr node)
 {
-    int event;
-    g_autofree char *name = NULL;
-    g_autofree char *enabled = NULL;
-
-    if (!(name = virXMLPropString(node, "name"))) {
-        virReportError(VIR_ERR_XML_ERROR, "%s", _("missing perf event name"));
-        return -1;
-    }
+    virPerfEventType name;
+    virTristateBool enabled;
 
-    if ((event = virPerfEventTypeFromString(name)) < 0) {
-        virReportError(VIR_ERR_XML_ERROR,
-                       _("'unsupported perf event '%s'"), name);
+    if (virXMLPropEnum(node, "name", virPerfEventTypeFromString,
+                       VIR_XML_PROP_REQUIRED, &name) < 0)
         return -1;
-    }
 
-    if (perf->events[event] != VIR_TRISTATE_BOOL_ABSENT) {
-        virReportError(VIR_ERR_XML_ERROR,
-                       _("perf event '%s' was already specified"), name);
+    if (virXMLPropTristateBool(node, "enabled", VIR_XML_PROP_REQUIRED, &enabled) < 0)
         return -1;
-    }
 
-    if (!(enabled = virXMLPropString(node, "enabled"))) {
+    if (perf->events[name] != VIR_TRISTATE_BOOL_ABSENT) {
         virReportError(VIR_ERR_XML_ERROR,
-                       _("missing state of perf event '%s'"), name);
+                       _("perf event '%s' was already specified"),
+                       virPerfEventTypeToString(name));
         return -1;
     }
 
-    if ((perf->events[event] = virTristateBoolTypeFromString(enabled)) < 0) {
-        virReportError(VIR_ERR_XML_ERROR,
-                       _("invalid state '%s' of perf event '%s'"),
-                       enabled, name);
-        return -1;
-    }
+    perf->events[name] = enabled;
 
     return 0;
 }