[libvirt] [PATCH v1 49/51] util: conf: separate virDomainDefParseMetadataInfo from virDomainDefParseXML

xinhua.Cao caoxinhua at huawei.com
Thu Feb 8 06:46:47 UTC 2018


separate virDomainDefParseMetadataInfo from virDomainDefParseXML
---
 src/conf/domain_conf.c | 20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 03bf5ad..7006e7f 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -21034,6 +21034,17 @@ virDomainDefParseKeyWrapInfo(virDomainParseTotalParamPtr param)
 }
 
 
+static int
+virDomainDefParseMetadataInfo(virDomainParseTotalParamPtr param)
+{
+    xmlNodePtr node = NULL;
+    /* Extract custom metadata */
+    if ((node = virXPathNode("./metadata[1]", param->ctxt)) != NULL)
+        param->def->metadata = xmlCopyNode(node, 1);
+
+    return 0;
+}
+
 static virDomainDefPtr
 virDomainDefParseXML(xmlDocPtr xml,
                      xmlNodePtr root,
@@ -21045,8 +21056,6 @@ virDomainDefParseXML(xmlDocPtr xml,
 {
     typedef int (*virDomainPreaseInfoFunc)(virDomainParseTotalParamPtr params);
 
-    xmlNodePtr *nodes = NULL, node = NULL;
-    char *tmp = NULL;
     size_t fun_index = 0;
     virDomainDefPtr def;
     virHashTablePtr bootHash = NULL;
@@ -21090,6 +21099,7 @@ virDomainDefParseXML(xmlDocPtr xml,
             virDomainDefParseIdmapInfo,
             virDomainDefParseSysinfoInfo,
             virDomainDefParseKeyWrapInfo,
+            virDomainDefParseMetadataInfo,
             NULL
     };
 
@@ -21121,10 +21131,6 @@ virDomainDefParseXML(xmlDocPtr xml,
         fun_index++;
     }
 
-    /* Extract custom metadata */
-    if ((node = virXPathNode("./metadata[1]", ctxt)) != NULL)
-        def->metadata = xmlCopyNode(node, 1);
-
     /* we have to make a copy of all of the callback pointers here since
      * we won't have the virCaps structure available during free
      */
@@ -21148,8 +21154,6 @@ virDomainDefParseXML(xmlDocPtr xml,
     return def;
 
  error:
-    VIR_FREE(tmp);
-    VIR_FREE(nodes);
     virHashFree(bootHash);
     virDomainDefFree(def);
     return NULL;
-- 
2.8.3





More information about the libvir-list mailing list