conf: domain: Introduce an internal variant of virDomainDiskDefNew

The <disk> XML element parser is going to be modified so that the
virStorageSource bits are pre-parsed. Add virDomainDiskDefNewSource,
which uses an existing 'src' pointer.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
Peter Krempa 2021-04-14 16:48:53 +02:00
parent 0202467c4b
commit dbfb5aa7c0

View File

@ -2230,25 +2230,32 @@ virDomainDefGetVcpusTopology(const virDomainDef *def,
}
virDomainDiskDef *
virDomainDiskDefNew(virDomainXMLOption *xmlopt)
static virDomainDiskDef *
virDomainDiskDefNewSource(virDomainXMLOption *xmlopt,
virStorageSource **src)
{
void *privateData = NULL;
virDomainDiskDef *ret;
ret = g_new0(virDomainDiskDef, 1);
ret->src = virStorageSourceNew();
if (xmlopt &&
xmlopt->privateData.diskNew &&
!(ret->privateData = xmlopt->privateData.diskNew()))
goto error;
!(privateData = xmlopt->privateData.diskNew()))
return NULL;
ret = g_new0(virDomainDiskDef, 1);
ret->src = g_steal_pointer(src);
ret->privateData = privateData;
return ret;
}
error:
virDomainDiskDefFree(ret);
return NULL;
virDomainDiskDef *
virDomainDiskDefNew(virDomainXMLOption *xmlopt)
{
g_autoptr(virStorageSource) src = virStorageSourceNew();
return virDomainDiskDefNewSource(xmlopt, &src);
}