}
+virDomainIOMMUDef *
+virDomainIOMMUDefNew(void)
+{
+ g_autoptr(virDomainIOMMUDef) iommu = NULL;
+
+ iommu = g_new0(virDomainIOMMUDef, 1);
+
+ return g_steal_pointer(&iommu);
+}
+
+
+void
+virDomainIOMMUDefFree(virDomainIOMMUDef *iommu)
+{
+ if (!iommu)
+ return;
+
+ g_free(iommu);
+}
+
+
void
virDomainNetTeamingInfoFree(virDomainNetTeamingInfo *teaming)
{
virDomainMemoryDefFree(def->data.memory);
break;
case VIR_DOMAIN_DEVICE_IOMMU:
- g_free(def->data.iommu);
+ virDomainIOMMUDefFree(def->data.iommu);
break;
case VIR_DOMAIN_DEVICE_VSOCK:
virDomainVsockDefFree(def->data.vsock);
virDomainPanicDefFree(def->panics[i]);
g_free(def->panics);
- g_free(def->iommu);
+ virDomainIOMMUDefFree(def->iommu);
g_free(def->idmap.uidmap);
g_free(def->idmap.gidmap);
{
VIR_XPATH_NODE_AUTORESTORE(ctxt)
xmlNodePtr driver;
- g_autofree virDomainIOMMUDef *iommu = NULL;
+ g_autoptr(virDomainIOMMUDef) iommu = NULL;
ctxt->node = node;
- iommu = g_new0(virDomainIOMMUDef, 1);
+ iommu = virDomainIOMMUDefNew();
if (virXMLPropEnum(node, "model", virDomainIOMMUModelTypeFromString,
VIR_XML_PROP_REQUIRED, &iommu->model) < 0)
virDomainFSDef *virDomainFSDefNew(virDomainXMLOption *xmlopt);
void virDomainFSDefFree(virDomainFSDef *def);
void virDomainActualNetDefFree(virDomainActualNetDef *def);
+virDomainIOMMUDef *virDomainIOMMUDefNew(void);
+void virDomainIOMMUDefFree(virDomainIOMMUDef *iommu);
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(virDomainIOMMUDef, virDomainIOMMUDefFree);
virDomainVsockDef *virDomainVsockDefNew(virDomainXMLOption *xmlopt);
void virDomainVsockDefFree(virDomainVsockDef *vsock);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(virDomainVsockDef, virDomainVsockDefFree);