Use the helper designed to find the subelement. A slight semantic
difference after this patch is that the first <zpci> element will be
considered instead of the last, but only one is expected in a valid XML.
Signed-off-by: Peter Krempa <pkrempa(a)redhat.com>
---
src/conf/device_conf.c | 16 ++++------------
1 file changed, 4 insertions(+), 12 deletions(-)
diff --git a/src/conf/device_conf.c b/src/conf/device_conf.c
index 762efe5f0b..a116e39c75 100644
--- a/src/conf/device_conf.c
+++ b/src/conf/device_conf.c
@@ -199,8 +199,7 @@ int
virPCIDeviceAddressParseXML(xmlNodePtr node,
virPCIDeviceAddress *addr)
{
- xmlNodePtr cur;
- xmlNodePtr zpci = NULL;
+ xmlNodePtr zpci;
memset(addr, 0, sizeof(*addr));
@@ -227,18 +226,11 @@ virPCIDeviceAddressParseXML(xmlNodePtr node,
if (!virPCIDeviceAddressIsEmpty(addr) && !virPCIDeviceAddressIsValid(addr,
true))
return -1;
- cur = node->children;
- while (cur) {
- if (cur->type == XML_ELEMENT_NODE &&
- virXMLNodeNameEqual(cur, "zpci")) {
- zpci = cur;
- }
- cur = cur->next;
+ if ((zpci = virXMLNodeGetSubelement(node, "zpci"))) {
+ if (virZPCIDeviceAddressParseXML(zpci, addr) < 0)
+ return -1;
}
- if (zpci && virZPCIDeviceAddressParseXML(zpci, addr) < 0)
- return -1;
-
return 0;
}
--
2.39.1