mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
conf: domain: Use VIR_XPATH_NODE_AUTORESTORE where appropriate
Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
933f136844
commit
66a508d2cc
@ -8109,11 +8109,10 @@ virDomainNetDefCoalesceParseXML(xmlNodePtr node,
|
|||||||
xmlXPathContextPtr ctxt)
|
xmlXPathContextPtr ctxt)
|
||||||
{
|
{
|
||||||
virNetDevCoalescePtr ret = NULL;
|
virNetDevCoalescePtr ret = NULL;
|
||||||
xmlNodePtr save = NULL;
|
VIR_XPATH_NODE_AUTORESTORE(ctxt);
|
||||||
unsigned long long tmp = 0;
|
unsigned long long tmp = 0;
|
||||||
VIR_AUTOFREE(char *) str = NULL;
|
VIR_AUTOFREE(char *) str = NULL;
|
||||||
|
|
||||||
save = ctxt->node;
|
|
||||||
ctxt->node = node;
|
ctxt->node = node;
|
||||||
|
|
||||||
str = virXPathString("string(./rx/frames/@max)", ctxt);
|
str = virXPathString("string(./rx/frames/@max)", ctxt);
|
||||||
@ -8140,7 +8139,6 @@ virDomainNetDefCoalesceParseXML(xmlNodePtr node,
|
|||||||
ret->rx_max_coalesced_frames = tmp;
|
ret->rx_max_coalesced_frames = tmp;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
ctxt->node = save;
|
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
error:
|
error:
|
||||||
@ -8512,16 +8510,15 @@ virSecurityLabelDefsParseXML(virDomainDefPtr def,
|
|||||||
virCapsPtr caps,
|
virCapsPtr caps,
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
|
VIR_XPATH_NODE_AUTORESTORE(ctxt);
|
||||||
size_t i = 0, j;
|
size_t i = 0, j;
|
||||||
int n;
|
int n;
|
||||||
xmlNodePtr saved_node;
|
|
||||||
virCapsHostPtr host = &caps->host;
|
virCapsHostPtr host = &caps->host;
|
||||||
VIR_AUTOFREE(xmlNodePtr *) list = NULL;
|
VIR_AUTOFREE(xmlNodePtr *) list = NULL;
|
||||||
|
|
||||||
/* Check args and save context */
|
/* Check args and save context */
|
||||||
if (def == NULL || ctxt == NULL)
|
if (def == NULL || ctxt == NULL)
|
||||||
return 0;
|
return 0;
|
||||||
saved_node = ctxt->node;
|
|
||||||
|
|
||||||
/* Allocate a security labels based on XML */
|
/* Allocate a security labels based on XML */
|
||||||
if ((n = virXPathNodeSet("./seclabel", ctxt, &list)) < 0)
|
if ((n = virXPathNodeSet("./seclabel", ctxt, &list)) < 0)
|
||||||
@ -8553,7 +8550,6 @@ virSecurityLabelDefsParseXML(virDomainDefPtr def,
|
|||||||
def->seclabels[i] = seclabel;
|
def->seclabels[i] = seclabel;
|
||||||
}
|
}
|
||||||
def->nseclabels = n;
|
def->nseclabels = n;
|
||||||
ctxt->node = saved_node;
|
|
||||||
|
|
||||||
/* libvirt versions prior to 0.10.0 support just a single seclabel element
|
/* libvirt versions prior to 0.10.0 support just a single seclabel element
|
||||||
* in guest's XML and model attribute can be suppressed if type is none or
|
* in guest's XML and model attribute can be suppressed if type is none or
|
||||||
@ -8603,7 +8599,6 @@ virSecurityLabelDefsParseXML(virDomainDefPtr def,
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
error:
|
error:
|
||||||
ctxt->node = saved_node;
|
|
||||||
for (; i > 0; i--)
|
for (; i > 0; i--)
|
||||||
virSecurityLabelDefFree(def->seclabels[i - 1]);
|
virSecurityLabelDefFree(def->seclabels[i - 1]);
|
||||||
VIR_FREE(def->seclabels);
|
VIR_FREE(def->seclabels);
|
||||||
@ -8940,7 +8935,7 @@ virDomainDiskSourcePrivateDataParse(xmlNodePtr node,
|
|||||||
unsigned int flags,
|
unsigned int flags,
|
||||||
virDomainXMLOptionPtr xmlopt)
|
virDomainXMLOptionPtr xmlopt)
|
||||||
{
|
{
|
||||||
xmlNodePtr saveNode = ctxt->node;
|
VIR_XPATH_NODE_AUTORESTORE(ctxt);
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
|
|
||||||
if (!(flags & VIR_DOMAIN_DEF_PARSE_STATUS) ||
|
if (!(flags & VIR_DOMAIN_DEF_PARSE_STATUS) ||
|
||||||
@ -8960,8 +8955,6 @@ virDomainDiskSourcePrivateDataParse(xmlNodePtr node,
|
|||||||
ret = 0;
|
ret = 0;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
ctxt->node = saveNode;
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -8971,7 +8964,7 @@ virDomainDiskSourcePRParse(xmlNodePtr node,
|
|||||||
xmlXPathContextPtr ctxt,
|
xmlXPathContextPtr ctxt,
|
||||||
virStoragePRDefPtr *pr)
|
virStoragePRDefPtr *pr)
|
||||||
{
|
{
|
||||||
xmlNodePtr saveNode = ctxt->node;
|
VIR_XPATH_NODE_AUTORESTORE(ctxt);
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
|
|
||||||
ctxt->node = node;
|
ctxt->node = node;
|
||||||
@ -8986,7 +8979,6 @@ virDomainDiskSourcePRParse(xmlNodePtr node,
|
|||||||
|
|
||||||
ret = 0;
|
ret = 0;
|
||||||
cleanup:
|
cleanup:
|
||||||
ctxt->node = saveNode;
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -8998,7 +8990,7 @@ virDomainStorageSourceParse(xmlNodePtr node,
|
|||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
xmlNodePtr saveNode = ctxt->node;
|
VIR_XPATH_NODE_AUTORESTORE(ctxt);
|
||||||
xmlNodePtr tmp;
|
xmlNodePtr tmp;
|
||||||
|
|
||||||
ctxt->node = node;
|
ctxt->node = node;
|
||||||
@ -9053,7 +9045,6 @@ virDomainStorageSourceParse(xmlNodePtr node,
|
|||||||
ret = 0;
|
ret = 0;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
ctxt->node = saveNode;
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -9081,7 +9072,7 @@ virDomainDiskBackingStoreParse(xmlXPathContextPtr ctxt,
|
|||||||
unsigned int flags,
|
unsigned int flags,
|
||||||
virDomainXMLOptionPtr xmlopt)
|
virDomainXMLOptionPtr xmlopt)
|
||||||
{
|
{
|
||||||
xmlNodePtr save_ctxt = ctxt->node;
|
VIR_XPATH_NODE_AUTORESTORE(ctxt);
|
||||||
xmlNodePtr source;
|
xmlNodePtr source;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
VIR_AUTOUNREF(virStorageSourcePtr) backingStore = NULL;
|
VIR_AUTOUNREF(virStorageSourcePtr) backingStore = NULL;
|
||||||
@ -9148,7 +9139,6 @@ virDomainDiskBackingStoreParse(xmlXPathContextPtr ctxt,
|
|||||||
ret = 0;
|
ret = 0;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
ctxt->node = save_ctxt;
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -9627,7 +9617,7 @@ virDomainDiskDefParsePrivateData(xmlXPathContextPtr ctxt,
|
|||||||
virDomainXMLOptionPtr xmlopt)
|
virDomainXMLOptionPtr xmlopt)
|
||||||
{
|
{
|
||||||
xmlNodePtr private_node = virXPathNode("./privateData", ctxt);
|
xmlNodePtr private_node = virXPathNode("./privateData", ctxt);
|
||||||
xmlNodePtr save_node = ctxt->node;
|
VIR_XPATH_NODE_AUTORESTORE(ctxt);
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
|
|
||||||
if (!xmlopt ||
|
if (!xmlopt ||
|
||||||
@ -9643,7 +9633,6 @@ virDomainDiskDefParsePrivateData(xmlXPathContextPtr ctxt,
|
|||||||
ret = 0;
|
ret = 0;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
ctxt->node = save_node;
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -9664,7 +9653,7 @@ virDomainDiskDefParseXML(virDomainXMLOptionPtr xmlopt,
|
|||||||
{
|
{
|
||||||
virDomainDiskDefPtr def;
|
virDomainDiskDefPtr def;
|
||||||
xmlNodePtr cur;
|
xmlNodePtr cur;
|
||||||
xmlNodePtr save_ctxt = ctxt->node;
|
VIR_XPATH_NODE_AUTORESTORE(ctxt);
|
||||||
bool source = false;
|
bool source = false;
|
||||||
virStorageEncryptionPtr encryption = NULL;
|
virStorageEncryptionPtr encryption = NULL;
|
||||||
VIR_AUTOPTR(virStorageAuthDef) authdef = NULL;
|
VIR_AUTOPTR(virStorageAuthDef) authdef = NULL;
|
||||||
@ -10081,7 +10070,6 @@ virDomainDiskDefParseXML(virDomainXMLOptionPtr xmlopt,
|
|||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virStorageEncryptionFree(encryption);
|
virStorageEncryptionFree(encryption);
|
||||||
ctxt->node = save_ctxt;
|
|
||||||
return def;
|
return def;
|
||||||
|
|
||||||
error:
|
error:
|
||||||
@ -10367,7 +10355,7 @@ virDomainControllerDefParseXML(virDomainXMLOptionPtr xmlopt,
|
|||||||
bool processedTarget = false;
|
bool processedTarget = false;
|
||||||
int numaNode = -1;
|
int numaNode = -1;
|
||||||
int ports = -1;
|
int ports = -1;
|
||||||
xmlNodePtr saved = ctxt->node;
|
VIR_XPATH_NODE_AUTORESTORE(ctxt);
|
||||||
int rc;
|
int rc;
|
||||||
VIR_AUTOFREE(char *) typeStr = NULL;
|
VIR_AUTOFREE(char *) typeStr = NULL;
|
||||||
VIR_AUTOFREE(char *) idx = NULL;
|
VIR_AUTOFREE(char *) idx = NULL;
|
||||||
@ -10695,7 +10683,6 @@ virDomainControllerDefParseXML(virDomainXMLOptionPtr xmlopt,
|
|||||||
}
|
}
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
ctxt->node = saved;
|
|
||||||
return def;
|
return def;
|
||||||
|
|
||||||
error:
|
error:
|
||||||
@ -10722,8 +10709,9 @@ virDomainFSDefParseXML(virDomainXMLOptionPtr xmlopt,
|
|||||||
xmlXPathContextPtr ctxt,
|
xmlXPathContextPtr ctxt,
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
|
VIR_XPATH_NODE_AUTORESTORE(ctxt);
|
||||||
virDomainFSDefPtr def;
|
virDomainFSDefPtr def;
|
||||||
xmlNodePtr cur, save_node = ctxt->node;
|
xmlNodePtr cur;
|
||||||
VIR_AUTOFREE(char *) type = NULL;
|
VIR_AUTOFREE(char *) type = NULL;
|
||||||
VIR_AUTOFREE(char *) fsdriver = NULL;
|
VIR_AUTOFREE(char *) fsdriver = NULL;
|
||||||
VIR_AUTOFREE(char *) source = NULL;
|
VIR_AUTOFREE(char *) source = NULL;
|
||||||
@ -10888,7 +10876,6 @@ virDomainFSDefParseXML(virDomainXMLOptionPtr xmlopt,
|
|||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
ctxt->node = save_node;
|
|
||||||
return def;
|
return def;
|
||||||
|
|
||||||
error:
|
error:
|
||||||
@ -10906,7 +10893,7 @@ virDomainActualNetDefParseXML(xmlNodePtr node,
|
|||||||
{
|
{
|
||||||
virDomainActualNetDefPtr actual = NULL;
|
virDomainActualNetDefPtr actual = NULL;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
xmlNodePtr save_ctxt = ctxt->node;
|
VIR_XPATH_NODE_AUTORESTORE(ctxt);
|
||||||
xmlNodePtr bandwidth_node = NULL;
|
xmlNodePtr bandwidth_node = NULL;
|
||||||
xmlNodePtr vlanNode;
|
xmlNodePtr vlanNode;
|
||||||
xmlNodePtr virtPortNode;
|
xmlNodePtr virtPortNode;
|
||||||
@ -11066,7 +11053,6 @@ virDomainActualNetDefParseXML(xmlNodePtr node,
|
|||||||
error:
|
error:
|
||||||
virDomainActualNetDefFree(actual);
|
virDomainActualNetDefFree(actual);
|
||||||
|
|
||||||
ctxt->node = save_ctxt;
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -11106,7 +11092,7 @@ virDomainChrSourceReconnectDefParseXML(virDomainChrSourceReconnectDefPtr def,
|
|||||||
{
|
{
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
int tmpVal;
|
int tmpVal;
|
||||||
xmlNodePtr saveNode = ctxt->node;
|
VIR_XPATH_NODE_AUTORESTORE(ctxt);
|
||||||
xmlNodePtr cur;
|
xmlNodePtr cur;
|
||||||
VIR_AUTOFREE(char *) tmp = NULL;
|
VIR_AUTOFREE(char *) tmp = NULL;
|
||||||
|
|
||||||
@ -11143,7 +11129,6 @@ virDomainChrSourceReconnectDefParseXML(virDomainChrSourceReconnectDefPtr def,
|
|||||||
|
|
||||||
ret = 0;
|
ret = 0;
|
||||||
cleanup:
|
cleanup:
|
||||||
ctxt->node = saveNode;
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -11165,7 +11150,7 @@ virDomainNetDefParseXML(virDomainXMLOptionPtr xmlopt,
|
|||||||
xmlNodePtr tmpNode;
|
xmlNodePtr tmpNode;
|
||||||
virHashTablePtr filterparams = NULL;
|
virHashTablePtr filterparams = NULL;
|
||||||
virDomainActualNetDefPtr actual = NULL;
|
virDomainActualNetDefPtr actual = NULL;
|
||||||
xmlNodePtr oldnode = ctxt->node;
|
VIR_XPATH_NODE_AUTORESTORE(ctxt);
|
||||||
virDomainChrSourceReconnectDef reconnect = {0};
|
virDomainChrSourceReconnectDef reconnect = {0};
|
||||||
int rv, val;
|
int rv, val;
|
||||||
VIR_AUTOFREE(char *) macaddr = NULL;
|
VIR_AUTOFREE(char *) macaddr = NULL;
|
||||||
@ -11949,7 +11934,6 @@ virDomainNetDefParseXML(virDomainXMLOptionPtr xmlopt,
|
|||||||
}
|
}
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
ctxt->node = oldnode;
|
|
||||||
virDomainActualNetDefFree(actual);
|
virDomainActualNetDefFree(actual);
|
||||||
virHashFree(filterparams);
|
virHashFree(filterparams);
|
||||||
return def;
|
return def;
|
||||||
@ -12829,7 +12813,7 @@ virDomainTPMDefParseXML(virDomainXMLOptionPtr xmlopt,
|
|||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
virDomainTPMDefPtr def;
|
virDomainTPMDefPtr def;
|
||||||
xmlNodePtr save = ctxt->node;
|
VIR_XPATH_NODE_AUTORESTORE(ctxt);
|
||||||
int nbackends;
|
int nbackends;
|
||||||
VIR_AUTOFREE(char *) path = NULL;
|
VIR_AUTOFREE(char *) path = NULL;
|
||||||
VIR_AUTOFREE(char *) model = NULL;
|
VIR_AUTOFREE(char *) model = NULL;
|
||||||
@ -12908,7 +12892,6 @@ virDomainTPMDefParseXML(virDomainXMLOptionPtr xmlopt,
|
|||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
ctxt->node = save;
|
|
||||||
return def;
|
return def;
|
||||||
|
|
||||||
error:
|
error:
|
||||||
@ -12957,7 +12940,7 @@ virDomainInputDefParseXML(virDomainXMLOptionPtr xmlopt,
|
|||||||
xmlXPathContextPtr ctxt,
|
xmlXPathContextPtr ctxt,
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
xmlNodePtr save = ctxt->node;
|
VIR_XPATH_NODE_AUTORESTORE(ctxt);
|
||||||
virDomainInputDefPtr def;
|
virDomainInputDefPtr def;
|
||||||
VIR_AUTOFREE(char *) evdev = NULL;
|
VIR_AUTOFREE(char *) evdev = NULL;
|
||||||
VIR_AUTOFREE(char *) type = NULL;
|
VIR_AUTOFREE(char *) type = NULL;
|
||||||
@ -13099,7 +13082,6 @@ virDomainInputDefParseXML(virDomainXMLOptionPtr xmlopt,
|
|||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
ctxt->node = save;
|
|
||||||
return def;
|
return def;
|
||||||
|
|
||||||
error:
|
error:
|
||||||
@ -13154,7 +13136,7 @@ virDomainTimerDefParseXML(xmlNodePtr node,
|
|||||||
xmlXPathContextPtr ctxt)
|
xmlXPathContextPtr ctxt)
|
||||||
{
|
{
|
||||||
virDomainTimerDefPtr def;
|
virDomainTimerDefPtr def;
|
||||||
xmlNodePtr oldnode = ctxt->node;
|
VIR_XPATH_NODE_AUTORESTORE(ctxt);
|
||||||
xmlNodePtr catchup;
|
xmlNodePtr catchup;
|
||||||
int ret;
|
int ret;
|
||||||
VIR_AUTOFREE(char *) name = NULL;
|
VIR_AUTOFREE(char *) name = NULL;
|
||||||
@ -13264,8 +13246,6 @@ virDomainTimerDefParseXML(xmlNodePtr node,
|
|||||||
}
|
}
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
ctxt->node = oldnode;
|
|
||||||
|
|
||||||
return def;
|
return def;
|
||||||
|
|
||||||
error:
|
error:
|
||||||
@ -13508,7 +13488,7 @@ virDomainGraphicsListensParseXML(virDomainGraphicsDefPtr def,
|
|||||||
xmlXPathContextPtr ctxt,
|
xmlXPathContextPtr ctxt,
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
xmlNodePtr save = ctxt->node;
|
VIR_XPATH_NODE_AUTORESTORE(ctxt);
|
||||||
virDomainGraphicsListenDef newListen = {0};
|
virDomainGraphicsListenDef newListen = {0};
|
||||||
int nListens;
|
int nListens;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
@ -13579,7 +13559,6 @@ virDomainGraphicsListensParseXML(virDomainGraphicsDefPtr def,
|
|||||||
ret = 0;
|
ret = 0;
|
||||||
cleanup:
|
cleanup:
|
||||||
virDomainGraphicsListenDefClear(&newListen);
|
virDomainGraphicsListenDefClear(&newListen);
|
||||||
ctxt->node = save;
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -13668,7 +13647,7 @@ virDomainGraphicsDefParseXMLSDL(virDomainGraphicsDefPtr def,
|
|||||||
xmlNodePtr node,
|
xmlNodePtr node,
|
||||||
xmlXPathContextPtr ctxt)
|
xmlXPathContextPtr ctxt)
|
||||||
{
|
{
|
||||||
xmlNodePtr save = ctxt->node;
|
VIR_XPATH_NODE_AUTORESTORE(ctxt);
|
||||||
int enableVal;
|
int enableVal;
|
||||||
xmlNodePtr glNode;
|
xmlNodePtr glNode;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
@ -13714,7 +13693,6 @@ virDomainGraphicsDefParseXMLSDL(virDomainGraphicsDefPtr def,
|
|||||||
|
|
||||||
ret = 0;
|
ret = 0;
|
||||||
cleanup:
|
cleanup:
|
||||||
ctxt->node = save;
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -14069,7 +14047,7 @@ virDomainGraphicsDefParseXMLEGLHeadless(virDomainGraphicsDefPtr def,
|
|||||||
xmlNodePtr node,
|
xmlNodePtr node,
|
||||||
xmlXPathContextPtr ctxt)
|
xmlXPathContextPtr ctxt)
|
||||||
{
|
{
|
||||||
xmlNodePtr save = ctxt->node;
|
VIR_XPATH_NODE_AUTORESTORE(ctxt);
|
||||||
xmlNodePtr glNode;
|
xmlNodePtr glNode;
|
||||||
|
|
||||||
ctxt->node = node;
|
ctxt->node = node;
|
||||||
@ -14077,7 +14055,6 @@ virDomainGraphicsDefParseXMLEGLHeadless(virDomainGraphicsDefPtr def,
|
|||||||
if ((glNode = virXPathNode("./gl", ctxt)))
|
if ((glNode = virXPathNode("./gl", ctxt)))
|
||||||
def->data.egl_headless.rendernode = virXMLPropString(glNode,
|
def->data.egl_headless.rendernode = virXMLPropString(glNode,
|
||||||
"rendernode");
|
"rendernode");
|
||||||
ctxt->node = save;
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -14200,7 +14177,7 @@ virDomainSoundDefParseXML(virDomainXMLOptionPtr xmlopt,
|
|||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
virDomainSoundDefPtr def;
|
virDomainSoundDefPtr def;
|
||||||
xmlNodePtr save = ctxt->node;
|
VIR_XPATH_NODE_AUTORESTORE(ctxt);
|
||||||
VIR_AUTOFREE(char *) model = NULL;
|
VIR_AUTOFREE(char *) model = NULL;
|
||||||
|
|
||||||
if (VIR_ALLOC(def) < 0)
|
if (VIR_ALLOC(def) < 0)
|
||||||
@ -14246,7 +14223,6 @@ virDomainSoundDefParseXML(virDomainXMLOptionPtr xmlopt,
|
|||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
ctxt->node = save;
|
|
||||||
return def;
|
return def;
|
||||||
|
|
||||||
error:
|
error:
|
||||||
@ -14313,7 +14289,7 @@ virDomainRNGDefParseXML(virDomainXMLOptionPtr xmlopt,
|
|||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
virDomainRNGDefPtr def;
|
virDomainRNGDefPtr def;
|
||||||
xmlNodePtr save = ctxt->node;
|
VIR_XPATH_NODE_AUTORESTORE(ctxt);
|
||||||
int nbackends;
|
int nbackends;
|
||||||
VIR_AUTOFREE(xmlNodePtr *) backends = NULL;
|
VIR_AUTOFREE(xmlNodePtr *) backends = NULL;
|
||||||
VIR_AUTOFREE(char *) model = NULL;
|
VIR_AUTOFREE(char *) model = NULL;
|
||||||
@ -14410,7 +14386,6 @@ virDomainRNGDefParseXML(virDomainXMLOptionPtr xmlopt,
|
|||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
ctxt->node = save;
|
|
||||||
return def;
|
return def;
|
||||||
|
|
||||||
error:
|
error:
|
||||||
@ -14427,7 +14402,7 @@ virDomainMemballoonDefParseXML(virDomainXMLOptionPtr xmlopt,
|
|||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
virDomainMemballoonDefPtr def;
|
virDomainMemballoonDefPtr def;
|
||||||
xmlNodePtr save = ctxt->node;
|
VIR_XPATH_NODE_AUTORESTORE(ctxt);
|
||||||
unsigned int period = 0;
|
unsigned int period = 0;
|
||||||
VIR_AUTOFREE(char *) model = NULL;
|
VIR_AUTOFREE(char *) model = NULL;
|
||||||
VIR_AUTOFREE(char *) deflate = NULL;
|
VIR_AUTOFREE(char *) deflate = NULL;
|
||||||
@ -14477,7 +14452,6 @@ virDomainMemballoonDefParseXML(virDomainXMLOptionPtr xmlopt,
|
|||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
ctxt->node = save;
|
|
||||||
return def;
|
return def;
|
||||||
|
|
||||||
error:
|
error:
|
||||||
@ -14515,7 +14489,7 @@ virDomainShmemDefParseXML(virDomainXMLOptionPtr xmlopt,
|
|||||||
virDomainShmemDefPtr def = NULL;
|
virDomainShmemDefPtr def = NULL;
|
||||||
virDomainShmemDefPtr ret = NULL;
|
virDomainShmemDefPtr ret = NULL;
|
||||||
xmlNodePtr msi = NULL;
|
xmlNodePtr msi = NULL;
|
||||||
xmlNodePtr save = ctxt->node;
|
VIR_XPATH_NODE_AUTORESTORE(ctxt);
|
||||||
xmlNodePtr server = NULL;
|
xmlNodePtr server = NULL;
|
||||||
VIR_AUTOFREE(char *) tmp = NULL;
|
VIR_AUTOFREE(char *) tmp = NULL;
|
||||||
|
|
||||||
@ -14596,7 +14570,6 @@ virDomainShmemDefParseXML(virDomainXMLOptionPtr xmlopt,
|
|||||||
|
|
||||||
VIR_STEAL_PTR(ret, def);
|
VIR_STEAL_PTR(ret, def);
|
||||||
cleanup:
|
cleanup:
|
||||||
ctxt->node = save;
|
|
||||||
virDomainShmemDefFree(def);
|
virDomainShmemDefFree(def);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -14745,7 +14718,7 @@ virSysinfoBaseBoardParseXML(xmlXPathContextPtr ctxt,
|
|||||||
{
|
{
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
size_t i, nboards = 0;
|
size_t i, nboards = 0;
|
||||||
xmlNodePtr oldnode = ctxt->node;
|
VIR_XPATH_NODE_AUTORESTORE(ctxt);
|
||||||
int n;
|
int n;
|
||||||
VIR_AUTOFREE(virSysinfoBaseBoardDefPtr) boards = NULL;
|
VIR_AUTOFREE(virSysinfoBaseBoardDefPtr) boards = NULL;
|
||||||
VIR_AUTOFREE(xmlNodePtr *) nodes = NULL;
|
VIR_AUTOFREE(xmlNodePtr *) nodes = NULL;
|
||||||
@ -14786,7 +14759,6 @@ virSysinfoBaseBoardParseXML(xmlXPathContextPtr ctxt,
|
|||||||
*nbaseBoard = nboards;
|
*nbaseBoard = nboards;
|
||||||
ret = 0;
|
ret = 0;
|
||||||
cleanup:
|
cleanup:
|
||||||
ctxt->node = oldnode;
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -15117,7 +15089,7 @@ virDomainVideoDefParseXML(virDomainXMLOptionPtr xmlopt,
|
|||||||
{
|
{
|
||||||
virDomainVideoDefPtr def;
|
virDomainVideoDefPtr def;
|
||||||
xmlNodePtr cur;
|
xmlNodePtr cur;
|
||||||
xmlNodePtr saved = ctxt->node;
|
VIR_XPATH_NODE_AUTORESTORE(ctxt);
|
||||||
VIR_AUTOFREE(char *) type = NULL;
|
VIR_AUTOFREE(char *) type = NULL;
|
||||||
VIR_AUTOFREE(char *) heads = NULL;
|
VIR_AUTOFREE(char *) heads = NULL;
|
||||||
VIR_AUTOFREE(char *) vram = NULL;
|
VIR_AUTOFREE(char *) vram = NULL;
|
||||||
@ -15230,7 +15202,6 @@ virDomainVideoDefParseXML(virDomainXMLOptionPtr xmlopt,
|
|||||||
def->driver = virDomainVideoDriverDefParseXML(node);
|
def->driver = virDomainVideoDriverDefParseXML(node);
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
ctxt->node = saved;
|
|
||||||
return def;
|
return def;
|
||||||
|
|
||||||
error:
|
error:
|
||||||
@ -15246,7 +15217,7 @@ virDomainHostdevDefParseXML(virDomainXMLOptionPtr xmlopt,
|
|||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
virDomainHostdevDefPtr def;
|
virDomainHostdevDefPtr def;
|
||||||
xmlNodePtr save = ctxt->node;
|
VIR_XPATH_NODE_AUTORESTORE(ctxt);
|
||||||
VIR_AUTOFREE(char *) mode = virXMLPropString(node, "mode");
|
VIR_AUTOFREE(char *) mode = virXMLPropString(node, "mode");
|
||||||
VIR_AUTOFREE(char *) type = virXMLPropString(node, "type");
|
VIR_AUTOFREE(char *) type = virXMLPropString(node, "type");
|
||||||
|
|
||||||
@ -15307,7 +15278,6 @@ virDomainHostdevDefParseXML(virDomainXMLOptionPtr xmlopt,
|
|||||||
}
|
}
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
ctxt->node = save;
|
|
||||||
return def;
|
return def;
|
||||||
|
|
||||||
error:
|
error:
|
||||||
@ -15522,7 +15492,7 @@ virDomainRedirFilterDefParseXML(xmlNodePtr node,
|
|||||||
{
|
{
|
||||||
int n;
|
int n;
|
||||||
size_t i;
|
size_t i;
|
||||||
xmlNodePtr save = ctxt->node;
|
VIR_XPATH_NODE_AUTORESTORE(ctxt);
|
||||||
virDomainRedirFilterDefPtr def = NULL;
|
virDomainRedirFilterDefPtr def = NULL;
|
||||||
VIR_AUTOFREE(xmlNodePtr *) nodes = NULL;
|
VIR_AUTOFREE(xmlNodePtr *) nodes = NULL;
|
||||||
|
|
||||||
@ -15545,7 +15515,6 @@ virDomainRedirFilterDefParseXML(xmlNodePtr node,
|
|||||||
def->usbdevs[def->nusbdevs++] = usbdev;
|
def->usbdevs[def->nusbdevs++] = usbdev;
|
||||||
}
|
}
|
||||||
|
|
||||||
ctxt->node = save;
|
|
||||||
return def;
|
return def;
|
||||||
|
|
||||||
error:
|
error:
|
||||||
@ -15662,7 +15631,7 @@ virDomainMemorySourceDefParseXML(xmlNodePtr node,
|
|||||||
virDomainMemoryDefPtr def)
|
virDomainMemoryDefPtr def)
|
||||||
{
|
{
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
xmlNodePtr save = ctxt->node;
|
VIR_XPATH_NODE_AUTORESTORE(ctxt);
|
||||||
ctxt->node = node;
|
ctxt->node = node;
|
||||||
VIR_AUTOFREE(char *) nodemask = NULL;
|
VIR_AUTOFREE(char *) nodemask = NULL;
|
||||||
|
|
||||||
@ -15709,7 +15678,6 @@ virDomainMemorySourceDefParseXML(xmlNodePtr node,
|
|||||||
ret = 0;
|
ret = 0;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
ctxt->node = save;
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -15720,7 +15688,7 @@ virDomainMemoryTargetDefParseXML(xmlNodePtr node,
|
|||||||
virDomainMemoryDefPtr def)
|
virDomainMemoryDefPtr def)
|
||||||
{
|
{
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
xmlNodePtr save = ctxt->node;
|
VIR_XPATH_NODE_AUTORESTORE(ctxt);
|
||||||
ctxt->node = node;
|
ctxt->node = node;
|
||||||
int rv;
|
int rv;
|
||||||
|
|
||||||
@ -15762,7 +15730,6 @@ virDomainMemoryTargetDefParseXML(xmlNodePtr node,
|
|||||||
ret = 0;
|
ret = 0;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
ctxt->node = save;
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -15771,7 +15738,7 @@ static virDomainSEVDefPtr
|
|||||||
virDomainSEVDefParseXML(xmlNodePtr sevNode,
|
virDomainSEVDefParseXML(xmlNodePtr sevNode,
|
||||||
xmlXPathContextPtr ctxt)
|
xmlXPathContextPtr ctxt)
|
||||||
{
|
{
|
||||||
xmlNodePtr save = ctxt->node;
|
VIR_XPATH_NODE_AUTORESTORE(ctxt);
|
||||||
virDomainSEVDefPtr def;
|
virDomainSEVDefPtr def;
|
||||||
unsigned long policy;
|
unsigned long policy;
|
||||||
VIR_AUTOFREE(char *) type = NULL;
|
VIR_AUTOFREE(char *) type = NULL;
|
||||||
@ -15824,7 +15791,6 @@ virDomainSEVDefParseXML(xmlNodePtr sevNode,
|
|||||||
def->session = virXPathString("string(./session)", ctxt);
|
def->session = virXPathString("string(./session)", ctxt);
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
ctxt->node = save;
|
|
||||||
return def;
|
return def;
|
||||||
|
|
||||||
error:
|
error:
|
||||||
@ -15839,7 +15805,7 @@ virDomainMemoryDefParseXML(virDomainXMLOptionPtr xmlopt,
|
|||||||
xmlXPathContextPtr ctxt,
|
xmlXPathContextPtr ctxt,
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
xmlNodePtr save = ctxt->node;
|
VIR_XPATH_NODE_AUTORESTORE(ctxt);
|
||||||
xmlNodePtr node;
|
xmlNodePtr node;
|
||||||
virDomainMemoryDefPtr def;
|
virDomainMemoryDefPtr def;
|
||||||
int val;
|
int val;
|
||||||
@ -15903,12 +15869,10 @@ virDomainMemoryDefParseXML(virDomainXMLOptionPtr xmlopt,
|
|||||||
&def->info, flags) < 0)
|
&def->info, flags) < 0)
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
ctxt->node = save;
|
|
||||||
return def;
|
return def;
|
||||||
|
|
||||||
error:
|
error:
|
||||||
virDomainMemoryDefFree(def);
|
virDomainMemoryDefFree(def);
|
||||||
ctxt->node = save;
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -15918,7 +15882,7 @@ virDomainIOMMUDefParseXML(xmlNodePtr node,
|
|||||||
xmlXPathContextPtr ctxt)
|
xmlXPathContextPtr ctxt)
|
||||||
{
|
{
|
||||||
virDomainIOMMUDefPtr ret = NULL;
|
virDomainIOMMUDefPtr ret = NULL;
|
||||||
xmlNodePtr save = ctxt->node;
|
VIR_XPATH_NODE_AUTORESTORE(ctxt);
|
||||||
xmlNodePtr driver;
|
xmlNodePtr driver;
|
||||||
int val;
|
int val;
|
||||||
VIR_AUTOFREE(char *) tmp = NULL;
|
VIR_AUTOFREE(char *) tmp = NULL;
|
||||||
@ -15982,7 +15946,6 @@ virDomainIOMMUDefParseXML(xmlNodePtr node,
|
|||||||
VIR_STEAL_PTR(ret, iommu);
|
VIR_STEAL_PTR(ret, iommu);
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
ctxt->node = save;
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -15994,7 +15957,7 @@ virDomainVsockDefParseXML(virDomainXMLOptionPtr xmlopt,
|
|||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
virDomainVsockDefPtr ret = NULL;
|
virDomainVsockDefPtr ret = NULL;
|
||||||
xmlNodePtr save = ctxt->node;
|
VIR_XPATH_NODE_AUTORESTORE(ctxt);
|
||||||
xmlNodePtr cid;
|
xmlNodePtr cid;
|
||||||
int val;
|
int val;
|
||||||
VIR_AUTOFREE(char *) tmp = NULL;
|
VIR_AUTOFREE(char *) tmp = NULL;
|
||||||
@ -16046,7 +16009,6 @@ virDomainVsockDefParseXML(virDomainXMLOptionPtr xmlopt,
|
|||||||
VIR_STEAL_PTR(ret, vsock);
|
VIR_STEAL_PTR(ret, vsock);
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
ctxt->node = save;
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -17770,7 +17732,7 @@ virDomainIdmapDefParseXML(xmlXPathContextPtr ctxt,
|
|||||||
{
|
{
|
||||||
size_t i;
|
size_t i;
|
||||||
virDomainIdMapEntryPtr idmap = NULL;
|
virDomainIdMapEntryPtr idmap = NULL;
|
||||||
xmlNodePtr save_ctxt = ctxt->node;
|
VIR_XPATH_NODE_AUTORESTORE(ctxt);
|
||||||
|
|
||||||
if (VIR_ALLOC_N(idmap, num) < 0)
|
if (VIR_ALLOC_N(idmap, num) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
@ -17799,7 +17761,6 @@ virDomainIdmapDefParseXML(xmlXPathContextPtr ctxt,
|
|||||||
}
|
}
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
ctxt->node = save_ctxt;
|
|
||||||
return idmap;
|
return idmap;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -18175,7 +18136,7 @@ virDomainHugepagesParseXML(xmlNodePtr node,
|
|||||||
virDomainHugePagePtr hugepage)
|
virDomainHugePagePtr hugepage)
|
||||||
{
|
{
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
xmlNodePtr oldnode = ctxt->node;
|
VIR_XPATH_NODE_AUTORESTORE(ctxt);
|
||||||
VIR_AUTOFREE(char *) nodeset = NULL;
|
VIR_AUTOFREE(char *) nodeset = NULL;
|
||||||
|
|
||||||
ctxt->node = node;
|
ctxt->node = node;
|
||||||
@ -18204,7 +18165,6 @@ virDomainHugepagesParseXML(xmlNodePtr node,
|
|||||||
|
|
||||||
ret = 0;
|
ret = 0;
|
||||||
cleanup:
|
cleanup:
|
||||||
ctxt->node = oldnode;
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -18213,8 +18173,8 @@ static virDomainResourceDefPtr
|
|||||||
virDomainResourceDefParse(xmlNodePtr node,
|
virDomainResourceDefParse(xmlNodePtr node,
|
||||||
xmlXPathContextPtr ctxt)
|
xmlXPathContextPtr ctxt)
|
||||||
{
|
{
|
||||||
|
VIR_XPATH_NODE_AUTORESTORE(ctxt);
|
||||||
virDomainResourceDefPtr def = NULL;
|
virDomainResourceDefPtr def = NULL;
|
||||||
xmlNodePtr tmp = ctxt->node;
|
|
||||||
|
|
||||||
ctxt->node = node;
|
ctxt->node = node;
|
||||||
|
|
||||||
@ -18228,11 +18188,9 @@ virDomainResourceDefParse(xmlNodePtr node,
|
|||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
|
||||||
ctxt->node = tmp;
|
|
||||||
return def;
|
return def;
|
||||||
|
|
||||||
error:
|
error:
|
||||||
ctxt->node = tmp;
|
|
||||||
virDomainResourceDefFree(def);
|
virDomainResourceDefFree(def);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
@ -18797,7 +18755,7 @@ virDomainCachetuneDefParseCache(xmlXPathContextPtr ctxt,
|
|||||||
xmlNodePtr node,
|
xmlNodePtr node,
|
||||||
virResctrlAllocPtr alloc)
|
virResctrlAllocPtr alloc)
|
||||||
{
|
{
|
||||||
xmlNodePtr oldnode = ctxt->node;
|
VIR_XPATH_NODE_AUTORESTORE(ctxt);
|
||||||
unsigned int level;
|
unsigned int level;
|
||||||
unsigned int cache;
|
unsigned int cache;
|
||||||
int type;
|
int type;
|
||||||
@ -18859,7 +18817,6 @@ virDomainCachetuneDefParseCache(xmlXPathContextPtr ctxt,
|
|||||||
|
|
||||||
ret = 0;
|
ret = 0;
|
||||||
cleanup:
|
cleanup:
|
||||||
ctxt->node = oldnode;
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -18931,7 +18888,7 @@ virDomainResctrlMonDefParse(virDomainDefPtr def,
|
|||||||
virDomainResctrlDefPtr resctrl)
|
virDomainResctrlDefPtr resctrl)
|
||||||
{
|
{
|
||||||
virDomainResctrlMonDefPtr domresmon = NULL;
|
virDomainResctrlMonDefPtr domresmon = NULL;
|
||||||
xmlNodePtr oldnode = ctxt->node;
|
VIR_XPATH_NODE_AUTORESTORE(ctxt);
|
||||||
unsigned int level = 0;
|
unsigned int level = 0;
|
||||||
size_t i = 0;
|
size_t i = 0;
|
||||||
int n = 0;
|
int n = 0;
|
||||||
@ -19026,7 +18983,6 @@ virDomainResctrlMonDefParse(virDomainDefPtr def,
|
|||||||
|
|
||||||
ret = 0;
|
ret = 0;
|
||||||
cleanup:
|
cleanup:
|
||||||
ctxt->node = oldnode;
|
|
||||||
virDomainResctrlMonDefFree(domresmon);
|
virDomainResctrlMonDefFree(domresmon);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -19089,7 +19045,7 @@ virDomainCachetuneDefParse(virDomainDefPtr def,
|
|||||||
xmlNodePtr node,
|
xmlNodePtr node,
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
xmlNodePtr oldnode = ctxt->node;
|
VIR_XPATH_NODE_AUTORESTORE(ctxt);
|
||||||
virDomainResctrlDefPtr resctrl = NULL;
|
virDomainResctrlDefPtr resctrl = NULL;
|
||||||
ssize_t i = 0;
|
ssize_t i = 0;
|
||||||
int n;
|
int n;
|
||||||
@ -19153,7 +19109,6 @@ virDomainCachetuneDefParse(virDomainDefPtr def,
|
|||||||
|
|
||||||
ret = 0;
|
ret = 0;
|
||||||
cleanup:
|
cleanup:
|
||||||
ctxt->node = oldnode;
|
|
||||||
virDomainResctrlDefFree(resctrl);
|
virDomainResctrlDefFree(resctrl);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -19246,7 +19201,7 @@ virDomainMemorytuneDefParseMemory(xmlXPathContextPtr ctxt,
|
|||||||
xmlNodePtr node,
|
xmlNodePtr node,
|
||||||
virResctrlAllocPtr alloc)
|
virResctrlAllocPtr alloc)
|
||||||
{
|
{
|
||||||
xmlNodePtr oldnode = ctxt->node;
|
VIR_XPATH_NODE_AUTORESTORE(ctxt);
|
||||||
unsigned int id;
|
unsigned int id;
|
||||||
unsigned int bandwidth;
|
unsigned int bandwidth;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
@ -19285,7 +19240,6 @@ virDomainMemorytuneDefParseMemory(xmlXPathContextPtr ctxt,
|
|||||||
|
|
||||||
ret = 0;
|
ret = 0;
|
||||||
cleanup:
|
cleanup:
|
||||||
ctxt->node = oldnode;
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -19296,7 +19250,7 @@ virDomainMemorytuneDefParse(virDomainDefPtr def,
|
|||||||
xmlNodePtr node,
|
xmlNodePtr node,
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
xmlNodePtr oldnode = ctxt->node;
|
VIR_XPATH_NODE_AUTORESTORE(ctxt);
|
||||||
virDomainResctrlDefPtr resctrl = NULL;
|
virDomainResctrlDefPtr resctrl = NULL;
|
||||||
VIR_AUTOPTR(virBitmap) vcpus = NULL;
|
VIR_AUTOPTR(virBitmap) vcpus = NULL;
|
||||||
VIR_AUTOFREE(xmlNodePtr *) nodes = NULL;
|
VIR_AUTOFREE(xmlNodePtr *) nodes = NULL;
|
||||||
@ -19356,7 +19310,6 @@ virDomainMemorytuneDefParse(virDomainDefPtr def,
|
|||||||
|
|
||||||
ret = 0;
|
ret = 0;
|
||||||
cleanup:
|
cleanup:
|
||||||
ctxt->node = oldnode;
|
|
||||||
virDomainResctrlDefFree(resctrl);
|
virDomainResctrlDefFree(resctrl);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user