From: Tim Wiederhake Date: Tue, 4 May 2021 14:02:27 +0000 (+0200) Subject: virDomainPerfEventDefParseXML: Use virXMLProp* X-Git-Tag: v7.4.0-rc1~208 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=550981ce9713ef82df49116c336a9f4bd0eedef4;p=thirdparty%2Flibvirt.git virDomainPerfEventDefParseXML: Use virXMLProp* Signed-off-by: Tim Wiederhake Reviewed-by: Michal Privoznik --- 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; - - 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; }