Since our formatter now handles well if the config is allocated and not
filled and the parser always frees the definition before parsing we can
safely always-allocate the NUMA config.
This will help in later patches as the parser will be refactored to just
fill the data.
---
src/conf/domain_conf.c | 10 +++++++++-
src/conf/numa_conf.c | 11 +++++++++++
src/conf/numa_conf.h | 1 +
src/libvirt_private.syms | 1 +
4 files changed, 22 insertions(+), 1 deletion(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 6dea109..83c5fd9 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -2319,9 +2319,17 @@ virDomainDefNew(void)
{
virDomainDefPtr ret;
- ignore_value(VIR_ALLOC(ret));
+ if (VIR_ALLOC(ret) < 0)
+ return NULL;
+
+ if (!(ret->numa = virDomainNumaNew()))
+ goto error;
return ret;
+
+ error:
+ virDomainDefFree(ret);
+ return NULL;
}
diff --git a/src/conf/numa_conf.c b/src/conf/numa_conf.c
index 359bdff..2a5fb3c 100644
--- a/src/conf/numa_conf.c
+++ b/src/conf/numa_conf.c
@@ -827,3 +827,14 @@ virDomainNumaGetCPUCountTotal(virCPUDefPtr numa)
return ret;
}
+
+
+virDomainNumaPtr
+virDomainNumaNew(void)
+{
+ virDomainNumaPtr ret = NULL;
+
+ ignore_value(VIR_ALLOC(ret));
+
+ return ret;
+}
diff --git a/src/conf/numa_conf.h b/src/conf/numa_conf.h
index fa6b89b..e69489d 100644
--- a/src/conf/numa_conf.h
+++ b/src/conf/numa_conf.h
@@ -56,6 +56,7 @@ typedef enum {
VIR_ENUM_DECL(virNumaMemAccess)
+virDomainNumaPtr virDomainNumaNew(void);
void virDomainNumaFree(virDomainNumaPtr numa);
/*
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 4ba2142..6a746cf 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -629,6 +629,7 @@ virNodeDeviceObjUnlock;
# conf/numa_conf.h
virDomainNumaEquals;
virDomainNumaFree;
+virDomainNumaNew;
virDomainNumatuneFormatNodeset;
virDomainNumatuneFormatXML;
virDomainNumatuneGetMode;
--
2.2.2