From 550981ce9713ef82df49116c336a9f4bd0eedef4 Mon Sep 17 00:00:00 2001 From: Tim Wiederhake Date: Tue, 4 May 2021 16:02:27 +0200 Subject: [PATCH] virDomainPerfEventDefParseXML: Use virXMLProp* Signed-off-by: Tim Wiederhake Reviewed-by: Michal Privoznik --- src/conf/domain_conf.c | 37 +++++++++++-------------------------- 1 file changed, 11 insertions(+), 26 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 926705aa54..f6aaadbcb6 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -14629,39 +14629,24 @@ static int virDomainPerfEventDefParseXML(virDomainPerfDef *perf, xmlNodePtr node) { - int event; - g_autofree char *name = NULL; - g_autofree char *enabled = NULL; + virPerfEventType name; + virTristateBool enabled; - if (!(name = virXMLPropString(node, "name"))) { - virReportError(VIR_ERR_XML_ERROR, "%s", _("missing perf event name")); + if (virXMLPropEnum(node, "name", virPerfEventTypeFromString, + VIR_XML_PROP_REQUIRED, &name) < 0) return -1; - } - if ((event = virPerfEventTypeFromString(name)) < 0) { + if (virXMLPropTristateBool(node, "enabled", VIR_XML_PROP_REQUIRED, &enabled) < 0) + return -1; + + if (perf->events[name] != VIR_TRISTATE_BOOL_ABSENT) { virReportError(VIR_ERR_XML_ERROR, - _("'unsupported perf event '%s'"), name); + _("perf event '%s' was already specified"), + virPerfEventTypeToString(name)); return -1; } - if (perf->events[event] != VIR_TRISTATE_BOOL_ABSENT) { - virReportError(VIR_ERR_XML_ERROR, - _("perf event '%s' was already specified"), name); - return -1; - } - - if (!(enabled = virXMLPropString(node, "enabled"))) { - virReportError(VIR_ERR_XML_ERROR, - _("missing state of perf event '%s'"), 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; }