Signed-off-by: Rafael Fonseca <r4f4rfs(a)gmail.com>
---
src/conf/domain_capabilities.c | 48 ++++++++++++++++++----------------
src/conf/domain_capabilities.h | 10 ++++---
src/libvirt_private.syms | 1 +
tests/cputest.c | 35 ++++++++-----------------
4 files changed, 44 insertions(+), 50 deletions(-)
diff --git a/src/conf/domain_capabilities.c b/src/conf/domain_capabilities.c
index 921d795630..bc0a505cb9 100644
--- a/src/conf/domain_capabilities.c
+++ b/src/conf/domain_capabilities.c
@@ -45,19 +45,27 @@ VIR_ENUM_IMPL(virDomainCapsFeature,
);
static virClassPtr virDomainCapsClass;
-static virClassPtr virDomainCapsCPUModelsClass;
+G_DEFINE_TYPE(virDomainCapsCPUModels, vir_domain_caps_cpu_models, G_TYPE_OBJECT);
static void virDomainCapsDispose(void *obj);
-static void virDomainCapsCPUModelsDispose(void *obj);
+static void virDomainCapsCPUModelsFinalize(GObject *obj);
+
+static void vir_domain_caps_cpu_models_init(virDomainCapsCPUModels *mod G_GNUC_UNUSED)
+{
+}
+
+static void vir_domain_caps_cpu_models_class_init(virDomainCapsCPUModelsClass *klass)
+{
+ GObjectClass *obj = G_OBJECT_CLASS(klass);
+
+ obj->finalize = virDomainCapsCPUModelsFinalize;
+}
static int virDomainCapsOnceInit(void)
{
if (!VIR_CLASS_NEW(virDomainCaps, virClassForObjectLockable()))
return -1;
- if (!VIR_CLASS_NEW(virDomainCapsCPUModels, virClassForObject()))
- return -1;
-
return 0;
}
@@ -107,9 +115,9 @@ virDomainCapsDispose(void *obj)
static void
-virDomainCapsCPUModelsDispose(void *obj)
+virDomainCapsCPUModelsFinalize(GObject *obj)
{
- virDomainCapsCPUModelsPtr cpuModels = obj;
+ virDomainCapsCPUModelsPtr cpuModels = VIR_DOMAIN_CAPS_CPU_MODELS(obj);
size_t i;
for (i = 0; i < cpuModels->nmodels; i++) {
@@ -118,6 +126,8 @@ virDomainCapsCPUModelsDispose(void *obj)
}
VIR_FREE(cpuModels->models);
+
+ G_OBJECT_CLASS(vir_domain_caps_cpu_models_parent_class)->finalize(obj);
}
@@ -147,30 +157,26 @@ virDomainCapsNew(const char *path,
virDomainCapsCPUModelsPtr
virDomainCapsCPUModelsNew(size_t nmodels)
{
- virDomainCapsCPUModelsPtr cpuModels = NULL;
+ g_autoptr(virDomainCapsCPUModels) cpuModels = NULL;
if (virDomainCapsInitialize() < 0)
return NULL;
- if (!(cpuModels = virObjectNew(virDomainCapsCPUModelsClass)))
- return NULL;
+ cpuModels = VIR_DOMAIN_CAPS_CPU_MODELS(
+ g_object_new(VIR_TYPE_DOMAIN_CAPS_CPU_MODELS, NULL));
if (VIR_ALLOC_N(cpuModels->models, nmodels) < 0)
- goto error;
+ return NULL;
cpuModels->nmodels_max = nmodels;
- return cpuModels;
-
- error:
- virObjectUnref(cpuModels);
- return NULL;
+ return g_steal_pointer(&cpuModels);
}
virDomainCapsCPUModelsPtr
virDomainCapsCPUModelsCopy(virDomainCapsCPUModelsPtr old)
{
- virDomainCapsCPUModelsPtr cpuModels;
+ g_autoptr(virDomainCapsCPUModels) cpuModels = NULL;
size_t i;
if (!(cpuModels = virDomainCapsCPUModelsNew(old->nmodels)))
@@ -181,14 +187,10 @@ virDomainCapsCPUModelsCopy(virDomainCapsCPUModelsPtr old)
old->models[i].name,
old->models[i].usable,
old->models[i].blockers) < 0)
- goto error;
+ return NULL;
}
- return cpuModels;
-
- error:
- virObjectUnref(cpuModels);
- return NULL;
+ return g_steal_pointer(&cpuModels);
}
diff --git a/src/conf/domain_capabilities.h b/src/conf/domain_capabilities.h
index 9f4a23d015..88673ffe35 100644
--- a/src/conf/domain_capabilities.h
+++ b/src/conf/domain_capabilities.h
@@ -129,17 +129,21 @@ struct _virDomainCapsCPUModel {
char **blockers; /* NULL-terminated list of usability blockers */
};
-typedef struct _virDomainCapsCPUModels virDomainCapsCPUModels;
+#define VIR_TYPE_DOMAIN_CAPS_CPU_MODELS vir_domain_caps_cpu_models_get_type()
+G_DECLARE_FINAL_TYPE(virDomainCapsCPUModels,
+ vir_domain_caps_cpu_models,
+ VIR,
+ DOMAIN_CAPS_CPU_MODELS,
+ GObject);
typedef virDomainCapsCPUModels *virDomainCapsCPUModelsPtr;
struct _virDomainCapsCPUModels {
- virObject parent;
+ GObject parent;
size_t nmodels_max;
size_t nmodels;
virDomainCapsCPUModelPtr models;
};
-G_DEFINE_AUTOPTR_CLEANUP_FUNC(virDomainCapsCPUModels, virObjectUnref);
typedef struct _virDomainCapsCPU virDomainCapsCPU;
typedef virDomainCapsCPU *virDomainCapsCPUPtr;
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index ed7813ce0e..1e2b9af689 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -204,6 +204,7 @@ virDomainAuditVcpu;
# conf/domain_capabilities.h
+vir_domain_caps_cpu_models_get_type;
virDomainCapsCPUModelsAdd;
virDomainCapsCPUModelsCopy;
virDomainCapsCPUModelsGet;
diff --git a/tests/cputest.c b/tests/cputest.c
index 54c9689663..72c6bbbd45 100644
--- a/tests/cputest.c
+++ b/tests/cputest.c
@@ -573,7 +573,7 @@ cpuTestCPUID(bool guest, const void *arg)
char *host = NULL;
virCPUDefPtr cpu = NULL;
char *result = NULL;
- virDomainCapsCPUModelsPtr models = NULL;
+ g_autoptr(virDomainCapsCPUModels) models = NULL;
hostFile = g_strdup_printf("%s/cputestdata/%s-cpuid-%s.xml", abs_srcdir,
virArchToString(data->arch), data->host);
@@ -615,7 +615,6 @@ cpuTestCPUID(bool guest, const void *arg)
virCPUDataFree(hostData);
virCPUDefFree(cpu);
VIR_FREE(result);
- virObjectUnref(models);
return ret;
}
@@ -787,8 +786,8 @@ cpuTestUpdateLive(const void *arg)
virCPUDataPtr disabledData = NULL;
char *expectedFile = NULL;
virCPUDefPtr expected = NULL;
- virDomainCapsCPUModelsPtr hvModels = NULL;
- virDomainCapsCPUModelsPtr models = NULL;
+ g_autoptr(virDomainCapsCPUModels) hvModels = NULL;
+ g_autoptr(virDomainCapsCPUModels) models = NULL;
int ret = -1;
cpuFile = g_strdup_printf("cpuid-%s-guest", data->host);
@@ -864,8 +863,6 @@ cpuTestUpdateLive(const void *arg)
virCPUDataFree(disabledData);
VIR_FREE(expectedFile);
virCPUDefFree(expected);
- virObjectUnref(hvModels);
- virObjectUnref(models);
return ret;
}
@@ -937,7 +934,7 @@ static const char *ppc_models_list[] = { "POWER6",
"POWER7", "POWER8", NULL };
static virDomainCapsCPUModelsPtr
cpuTestInitModels(const char **list)
{
- virDomainCapsCPUModelsPtr cpus;
+ g_autoptr(virDomainCapsCPUModels) cpus = NULL;
const char **model;
if (!(cpus = virDomainCapsCPUModelsNew(0)))
@@ -946,25 +943,21 @@ cpuTestInitModels(const char **list)
for (model = list; *model; model++) {
if (virDomainCapsCPUModelsAdd(cpus, *model,
VIR_DOMCAPS_CPU_USABLE_UNKNOWN, NULL) < 0)
- goto error;
+ return NULL;
}
- return cpus;
-
- error:
- virObjectUnref(cpus);
- return NULL;
+ return g_steal_pointer(&cpus);
}
static int
mymain(void)
{
- virDomainCapsCPUModelsPtr model486 = NULL;
- virDomainCapsCPUModelsPtr nomodel = NULL;
- virDomainCapsCPUModelsPtr models = NULL;
- virDomainCapsCPUModelsPtr haswell = NULL;
- virDomainCapsCPUModelsPtr ppc_models = NULL;
+ g_autoptr(virDomainCapsCPUModels) model486 = NULL;
+ g_autoptr(virDomainCapsCPUModels) nomodel = NULL;
+ g_autoptr(virDomainCapsCPUModels) models = NULL;
+ g_autoptr(virDomainCapsCPUModels) haswell = NULL;
+ g_autoptr(virDomainCapsCPUModels) ppc_models = NULL;
int ret = 0;
#if WITH_QEMU
@@ -1275,12 +1268,6 @@ mymain(void)
qemuTestDriverFree(&driver);
#endif
- virObjectUnref(model486);
- virObjectUnref(nomodel);
- virObjectUnref(models);
- virObjectUnref(haswell);
- virObjectUnref(ppc_models);
-
return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
}
--
2.26.2