From: Kirill Shchetiniuk <[email protected]>
Signed-off-by: Kirill Shchetiniuk <[email protected]>
---
src/conf/domain_conf.c | 35 ++++++++++++++---------------------
src/conf/domain_conf.h | 2 ++
2 files changed, 16 insertions(+), 21 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 396cd1c0db..27e286ff52 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -3433,18 +3433,17 @@ void virDomainShmemDefFree(virDomainShmemDef *def)
virDomainVideoDef *
virDomainVideoDefNew(virDomainXMLOption *xmlopt)
{
- virDomainVideoDef *def;
+ g_autoptr(virDomainVideoDef) def = NULL;
def = g_new0(virDomainVideoDef, 1);
if (xmlopt && xmlopt->privateData.videoNew &&
!(def->privateData = xmlopt->privateData.videoNew())) {
- VIR_FREE(def);
return NULL;
}
def->heads = 1;
- return def;
+ return g_steal_pointer(&def);
}
@@ -3496,17 +3495,16 @@ virDomainHostdevDefNew(void)
static virDomainTPMDef *
virDomainTPMDefNew(virDomainXMLOption *xmlopt)
{
- virDomainTPMDef *def;
+ g_autoptr(virDomainTPMDef) def = NULL;
def = g_new0(virDomainTPMDef, 1);
if (xmlopt && xmlopt->privateData.tpmNew &&
!(def->privateData = xmlopt->privateData.tpmNew())) {
- VIR_FREE(def);
return NULL;
}
- return def;
+ return g_steal_pointer(&def);
}
void virDomainTPMDefFree(virDomainTPMDef *def)
@@ -9181,7 +9179,7 @@ virDomainIdmapDefParseXML(xmlXPathContextPtr ctxt,
size_t num)
{
size_t i;
- virDomainIdMapEntry *idmap = NULL;
+ g_autofree virDomainIdMapEntry *idmap = NULL;
VIR_XPATH_NODE_AUTORESTORE(ctxt)
idmap = g_new0(virDomainIdMapEntry, num);
@@ -9193,14 +9191,13 @@ virDomainIdmapDefParseXML(xmlXPathContextPtr ctxt,
virXPathUInt("string(./@count)", ctxt, &idmap[i].count) < 0) {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("invalid idmap start/target/count settings"));
- VIR_FREE(idmap);
return NULL;
}
}
g_qsort_with_data(idmap, num, sizeof(idmap[0]), virDomainIdMapEntrySort,
NULL);
- return idmap;
+ return g_steal_pointer(&idmap);
}
@@ -9635,20 +9632,16 @@ virDomainNetAppendIPAddress(virDomainNetDef *def,
int family,
unsigned int prefix)
{
- virNetDevIPAddr *ipDef = NULL;
+ g_autofree virNetDevIPAddr *ipDef = NULL;
ipDef = g_new0(virNetDevIPAddr, 1);
if (virSocketAddrParse(&ipDef->address, address, family) < 0)
- goto error;
+ return -1;
ipDef->prefix = prefix;
VIR_APPEND_ELEMENT(def->guestIP.ips, def->guestIP.nips, ipDef);
return 0;
-
- error:
- VIR_FREE(ipDef);
- return -1;
}
@@ -10948,16 +10941,16 @@ virDomainChrSourceDefNew(virDomainXMLOption *xmlopt)
virDomainChrDef *
virDomainChrDefNew(virDomainXMLOption *xmlopt)
{
- virDomainChrDef *def = NULL;
+ g_autoptr(virDomainChrDef) def = NULL;
def = g_new0(virDomainChrDef, 1);
def->target.port = -1;
if (!(def->source = virDomainChrSourceDefNew(xmlopt)))
- VIR_FREE(def);
+ return NULL;
- return def;
+ return g_steal_pointer(&def);
}
/* Parse the XML definition for a character device
@@ -12265,16 +12258,16 @@ virDomainGraphicsDefParseXMLDBus(virDomainGraphicsDef
*def,
virDomainGraphicsDef *
virDomainGraphicsDefNew(virDomainXMLOption *xmlopt)
{
- virDomainGraphicsDef *def = NULL;
+ g_autoptr(virDomainGraphicsDef) def = NULL;
def = g_new0(virDomainGraphicsDef, 1);
if (xmlopt && xmlopt->privateData.graphicsNew &&
!(def->privateData = xmlopt->privateData.graphicsNew())) {
- VIR_FREE(def);
+ return NULL;
}
- return def;
+ return g_steal_pointer(&def);
}
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index 81e735993d..206bb781d5 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -3721,6 +3721,7 @@ int virDomainObjWaitUntil(virDomainObj *vm,
void virDomainPanicDefFree(virDomainPanicDef *panic);
void virDomainResourceDefFree(virDomainResourceDef *resource);
void virDomainGraphicsDefFree(virDomainGraphicsDef *def);
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(virDomainGraphicsDef, virDomainGraphicsDefFree);
const char *virDomainInputDefGetPath(virDomainInputDef *input);
void virDomainInputDefFree(virDomainInputDef *def);
virDomainDiskDef *virDomainDiskDefNew(virDomainXMLOption *xmlopt);
@@ -3806,6 +3807,7 @@ virDomainDeviceInfo *virDomainDeviceGetInfo(const
virDomainDeviceDef *device);
void virDomainDeviceSetData(virDomainDeviceDef *device,
void *devicedata);
void virDomainTPMDefFree(virDomainTPMDef *def);
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(virDomainTPMDef, virDomainTPMDefFree);
typedef int (*virDomainDeviceInfoCallback)(virDomainDef *def,
virDomainDeviceDef *dev,
--
2.49.0