Signed-off-by: Rafael Fonseca <r4f4rfs(a)gmail.com>
---
src/bhyve/bhyve_capabilities.c | 16 ++++--------
src/bhyve/bhyve_driver.c | 30 ++++++++--------------
src/conf/capabilities.c | 39 ++++++++++++++--------------
src/conf/capabilities.h | 6 ++---
src/conf/storage_capabilities.c | 5 ++--
src/conf/virconftypes.h | 3 +--
src/esx/esx_driver.c | 25 +++++++-----------
src/libxl/libxl_capabilities.c | 19 +++++---------
src/libxl/libxl_conf.c | 3 ++-
src/lxc/lxc_conf.c | 16 +++++-------
src/lxc/lxc_controller.c | 3 ++-
src/lxc/lxc_driver.c | 45 ++++++++++++---------------------
src/lxc/lxc_process.c | 3 ++-
src/openvz/openvz_conf.c | 7 +++--
src/qemu/qemu_capabilities.c | 14 +++-------
src/qemu/qemu_conf.c | 8 +++---
src/qemu/qemu_driver.c | 3 ++-
src/security/virt-aa-helper.c | 8 +++---
src/storage/storage_backend.c | 3 +--
src/test/test_driver.c | 28 +++++++++-----------
src/vbox/vbox_common.c | 7 +++--
src/vmware/vmware_conf.c | 12 ++++-----
src/vz/vz_driver.c | 27 ++++++++------------
tests/bhyveargv2xmltest.c | 2 +-
tests/bhyvexml2argvtest.c | 2 +-
tests/bhyvexml2xmltest.c | 2 +-
tests/domainconftest.c | 3 ++-
tests/genericxml2xmltest.c | 3 ++-
tests/openvzutilstest.c | 2 +-
tests/qemucaps2xmltest.c | 13 +++-------
tests/qemuhotplugtest.c | 6 ++---
tests/testutils.c | 4 +--
tests/testutilslxc.c | 21 +++++++--------
tests/testutilsqemu.c | 11 ++++----
tests/testutilsxen.c | 3 +--
tests/vircaps2xmltest.c | 6 +----
tests/vircapstest.c | 14 +++-------
tests/virresctrltest.c | 3 +--
tests/vmx2xmltest.c | 8 ++----
tests/xml2vmxtest.c | 9 +++----
40 files changed, 177 insertions(+), 265 deletions(-)
diff --git a/src/bhyve/bhyve_capabilities.c b/src/bhyve/bhyve_capabilities.c
index fb8829d571..66442e50ba 100644
--- a/src/bhyve/bhyve_capabilities.c
+++ b/src/bhyve/bhyve_capabilities.c
@@ -43,31 +43,25 @@ VIR_LOG_INIT("bhyve.bhyve_capabilities");
virCapsPtr
virBhyveCapsBuild(void)
{
- virCapsPtr caps;
+ g_autoptr(virCaps) caps = NULL;
virCapsGuestPtr guest;
- if ((caps = virCapabilitiesNew(virArchFromHost(),
- false, false)) == NULL)
- return NULL;
+ caps = virCapabilitiesNew(virArchFromHost(), false, false);
if ((guest = virCapabilitiesAddGuest(caps, VIR_DOMAIN_OSTYPE_HVM,
VIR_ARCH_X86_64,
"bhyve",
NULL, 0, NULL)) == NULL)
- goto error;
+ return NULL;
if (virCapabilitiesAddGuestDomain(guest, VIR_DOMAIN_VIRT_BHYVE,
NULL, NULL, 0, NULL) == NULL)
- goto error;
+ return NULL;
if (!(caps->host.cpu = virCPUProbeHost(caps->host.arch)))
VIR_WARN("Failed to get host CPU");
- return caps;
-
- error:
- virObjectUnref(caps);
- return NULL;
+ return g_steal_pointer(&caps);
}
int
diff --git a/src/bhyve/bhyve_driver.c b/src/bhyve/bhyve_driver.c
index b6204c7fb9..4ca3666700 100644
--- a/src/bhyve/bhyve_driver.c
+++ b/src/bhyve/bhyve_driver.c
@@ -126,22 +126,21 @@ bhyveAutostartDomains(bhyveConnPtr driver)
* Get a reference to the virCapsPtr instance for the
* driver.
*
- * The caller must release the reference with virObjetUnref
+ * The caller must release the reference with g_object_unref
*
* Returns: a reference to a virCapsPtr instance or NULL
*/
virCapsPtr ATTRIBUTE_NONNULL(1)
bhyveDriverGetCapabilities(bhyveConnPtr driver)
{
- return virObjectRef(driver->caps);
+ return g_object_ref(driver->caps);
}
static char *
bhyveConnectGetCapabilities(virConnectPtr conn)
{
bhyveConnPtr privconn = conn->privateData;
- virCapsPtr caps;
- char *xml = NULL;
+ g_autoptr(virCaps) caps;
if (virConnectGetCapabilitiesEnsureACL(conn) < 0)
return NULL;
@@ -149,15 +148,10 @@ bhyveConnectGetCapabilities(virConnectPtr conn)
if (!(caps = bhyveDriverGetCapabilities(privconn))) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("Unable to get Capabilities"));
- goto cleanup;
+ return NULL;
}
- if (!(xml = virCapabilitiesFormatXML(caps)))
- goto cleanup;
-
- cleanup:
- virObjectUnref(caps);
- return xml;
+ return virCapabilitiesFormatXML(caps);
}
static virDomainObjPtr
@@ -508,7 +502,7 @@ bhyveDomainDefineXMLFlags(virConnectPtr conn, const char *xml,
unsigned int flag
virDomainDefPtr oldDef = NULL;
virDomainObjPtr vm = NULL;
virObjectEventPtr event = NULL;
- virCapsPtr caps = NULL;
+ g_autoptr(virCaps) caps = NULL;
unsigned int parse_flags = VIR_DOMAIN_DEF_PARSE_INACTIVE;
virCheckFlags(VIR_DOMAIN_DEFINE_VALIDATE, NULL);
@@ -555,7 +549,6 @@ bhyveDomainDefineXMLFlags(virConnectPtr conn, const char *xml,
unsigned int flag
dom = virGetDomain(conn, vm->def->name, vm->def->uuid,
vm->def->id);
cleanup:
- virObjectUnref(caps);
virDomainDefFree(def);
virDomainDefFree(oldDef);
virDomainObjEndAPI(&vm);
@@ -1188,7 +1181,8 @@ bhyveStateCleanup(void)
return -1;
virObjectUnref(bhyve_driver->domains);
- virObjectUnref(bhyve_driver->caps);
+ if (bhyve_driver->caps)
+ g_object_unref(bhyve_driver->caps);
virObjectUnref(bhyve_driver->xmlopt);
virSysinfoDefFree(bhyve_driver->hostsysinfo);
virObjectUnref(bhyve_driver->closeCallbacks);
@@ -1440,19 +1434,19 @@ bhyveConnectCompareCPU(virConnectPtr conn,
{
bhyveConnPtr driver = conn->privateData;
int ret = VIR_CPU_COMPARE_ERROR;
- virCapsPtr caps = NULL;
+ g_autoptr(virCaps) caps = NULL;
bool failIncompatible;
virCheckFlags(VIR_CONNECT_COMPARE_CPU_FAIL_INCOMPATIBLE,
VIR_CPU_COMPARE_ERROR);
if (virConnectCompareCPUEnsureACL(conn) < 0)
- goto cleanup;
+ return ret;
failIncompatible = !!(flags & VIR_CONNECT_COMPARE_CPU_FAIL_INCOMPATIBLE);
if (!(caps = bhyveDriverGetCapabilities(driver)))
- goto cleanup;
+ return ret;
if (!caps->host.cpu ||
!caps->host.cpu->model) {
@@ -1468,8 +1462,6 @@ bhyveConnectCompareCPU(virConnectPtr conn,
xmlDesc, failIncompatible);
}
- cleanup:
- virObjectUnref(caps);
return ret;
}
diff --git a/src/conf/capabilities.c b/src/conf/capabilities.c
index 2c91461a54..299892fadd 100644
--- a/src/conf/capabilities.c
+++ b/src/conf/capabilities.c
@@ -54,18 +54,8 @@ VIR_ENUM_IMPL(virCapsHostPMTarget,
"suspend_mem", "suspend_disk",
"suspend_hybrid",
);
-static virClassPtr virCapsClass;
-static void virCapsDispose(void *obj);
+G_DEFINE_TYPE(virCaps, vir_caps, G_TYPE_OBJECT);
-static int virCapabilitiesOnceInit(void)
-{
- if (!VIR_CLASS_NEW(virCaps, virClassForObject()))
- return -1;
-
- return 0;
-}
-
-VIR_ONCE_GLOBAL_INIT(virCapabilities);
/**
* virCapabilitiesNew:
@@ -80,13 +70,7 @@ virCapabilitiesNew(virArch hostarch,
bool offlineMigrate,
bool liveMigrate)
{
- virCapsPtr caps;
-
- if (virCapabilitiesInitialize() < 0)
- return NULL;
-
- if (!(caps = virObjectNew(virCapsClass)))
- return NULL;
+ virCapsPtr caps = VIR_CAPS(g_object_new(VIR_TYPE_CAPS, NULL));
caps->host.arch = hostarch;
caps->host.offlineMigrate = offlineMigrate;
@@ -225,9 +209,9 @@ virCapabilitiesClearSecModel(virCapsHostSecModelPtr secmodel)
}
static void
-virCapsDispose(void *object)
+virCapsFinalize(GObject *object)
{
- virCapsPtr caps = object;
+ virCapsPtr caps = VIR_CAPS(object);
size_t i;
for (i = 0; i < caps->npools; i++)
@@ -268,6 +252,21 @@ virCapsDispose(void *object)
virCPUDefFree(caps->host.cpu);
if (caps->host.resctrl)
g_object_unref(caps->host.resctrl);
+
+ G_OBJECT_CLASS(vir_caps_parent_class)->finalize(object);
+}
+
+static void
+vir_caps_init(virCaps *caps G_GNUC_UNUSED)
+{
+}
+
+static void
+vir_caps_class_init(virCapsClass *klass)
+{
+ GObjectClass *obj = G_OBJECT_CLASS(klass);
+
+ obj->finalize = virCapsFinalize;
}
/**
diff --git a/src/conf/capabilities.h b/src/conf/capabilities.h
index e2581fac8b..b563f79148 100644
--- a/src/conf/capabilities.h
+++ b/src/conf/capabilities.h
@@ -200,7 +200,7 @@ struct _virCapsStoragePool {
struct _virCaps {
- virObject parent;
+ GObject parent;
virCapsHost host;
size_t nguests;
@@ -212,8 +212,8 @@ struct _virCaps {
virCapsStoragePoolPtr *pools;
};
-G_DEFINE_AUTOPTR_CLEANUP_FUNC(virCaps, virObjectUnref);
-
+#define VIR_TYPE_CAPS vir_caps_get_type()
+G_DECLARE_FINAL_TYPE(virCaps, vir_caps, VIR, CAPS, GObject);
struct _virCapsDomainData {
int ostype;
diff --git a/src/conf/storage_capabilities.c b/src/conf/storage_capabilities.c
index 1a3417f90b..bb612e0ec9 100644
--- a/src/conf/storage_capabilities.c
+++ b/src/conf/storage_capabilities.c
@@ -40,7 +40,8 @@ virStoragePoolCapsDispose(void *obj)
virStoragePoolCapsPtr caps = obj;
VIR_DEBUG("obj=%p", caps);
- virObjectUnref(caps->driverCaps);
+ if (caps->driverCaps)
+ g_object_unref(caps->driverCaps);
}
@@ -66,7 +67,7 @@ virStoragePoolCapsNew(virCapsPtr driverCaps)
if (!(caps = virObjectLockableNew(virStoragePoolCapsClass)))
return NULL;
- caps->driverCaps = virObjectRef(driverCaps);
+ caps->driverCaps = g_object_ref(driverCaps);
return caps;
}
diff --git a/src/conf/virconftypes.h b/src/conf/virconftypes.h
index 1c62cde251..96df0f9f6f 100644
--- a/src/conf/virconftypes.h
+++ b/src/conf/virconftypes.h
@@ -27,8 +27,7 @@
typedef struct _virBlkioDevice virBlkioDevice;
typedef virBlkioDevice *virBlkioDevicePtr;
-typedef struct _virCaps virCaps;
-typedef virCaps *virCapsPtr;
+typedef struct _virCaps *virCapsPtr;
typedef struct _virCapsDomainData virCapsDomainData;
typedef virCapsDomainData *virCapsDomainDataPtr;
diff --git a/src/esx/esx_driver.c b/src/esx/esx_driver.c
index 0ede65279a..f893d112d0 100644
--- a/src/esx/esx_driver.c
+++ b/src/esx/esx_driver.c
@@ -69,7 +69,8 @@ esxFreePrivate(esxPrivate **priv)
esxVI_Context_Free(&(*priv)->host);
esxVI_Context_Free(&(*priv)->vCenter);
esxUtil_FreeParsedUri(&(*priv)->parsedUri);
- virObjectUnref((*priv)->caps);
+ if ((*priv)->caps)
+ g_object_unref((*priv)->caps);
virObjectUnref((*priv)->xmlopt);
VIR_FREE(*priv);
}
@@ -540,7 +541,7 @@ static virCapsPtr
esxCapsInit(esxPrivate *priv)
{
esxVI_Boolean supportsLongMode = esxSupportsLongMode(priv);
- virCapsPtr caps = NULL;
+ g_autoptr(virCaps) caps = NULL;
virCapsGuestPtr guest = NULL;
if (supportsLongMode == esxVI_Boolean_Undefined)
@@ -552,14 +553,11 @@ esxCapsInit(esxPrivate *priv)
caps = virCapabilitiesNew(VIR_ARCH_I686, true, true);
}
- if (!caps)
- return NULL;
-
virCapabilitiesAddHostMigrateTransport(caps, "vpxmigr");
if (esxLookupHostSystemBiosUuid(priv, caps->host.host_uuid) < 0)
- goto failure;
+ return NULL;
/* i686 */
guest = virCapabilitiesAddGuest(caps, VIR_DOMAIN_OSTYPE_HVM,
@@ -568,10 +566,10 @@ esxCapsInit(esxPrivate *priv)
NULL);
if (!guest)
- goto failure;
+ return NULL;
if (!virCapabilitiesAddGuestDomain(guest, VIR_DOMAIN_VIRT_VMWARE, NULL, NULL, 0,
NULL))
- goto failure;
+ return NULL;
/* x86_64 */
if (supportsLongMode == esxVI_Boolean_True) {
@@ -581,18 +579,13 @@ esxCapsInit(esxPrivate *priv)
0, NULL);
if (!guest)
- goto failure;
+ return NULL;
if (!virCapabilitiesAddGuestDomain(guest, VIR_DOMAIN_VIRT_VMWARE, NULL, NULL, 0,
NULL))
- goto failure;
+ return NULL;
}
- return caps;
-
- failure:
- virObjectUnref(caps);
-
- return NULL;
+ return g_steal_pointer(&caps);
}
diff --git a/src/libxl/libxl_capabilities.c b/src/libxl/libxl_capabilities.c
index beac8c8cfc..4bbe761b3d 100644
--- a/src/libxl/libxl_capabilities.c
+++ b/src/libxl/libxl_capabilities.c
@@ -704,29 +704,24 @@ libxlMakeDomainDeviceHostdevCaps(virDomainCapsDeviceHostdevPtr dev)
virCapsPtr
libxlMakeCapabilities(libxl_ctx *ctx)
{
- virCapsPtr caps;
+ g_autoptr(virCaps) caps = NULL;
#ifdef LIBXL_HAVE_NO_SUSPEND_RESUME
- if ((caps = virCapabilitiesNew(virArchFromHost(), false, false)) == NULL)
+ caps = virCapabilitiesNew(virArchFromHost(), false, false);
#else
- if ((caps = virCapabilitiesNew(virArchFromHost(), true, true)) == NULL)
+ caps = virCapabilitiesNew(virArchFromHost(), true, true);
#endif
- return NULL;
if (libxlCapsInitHost(ctx, caps) < 0)
- goto error;
+ return NULL;
if (libxlCapsInitNuma(ctx, caps) < 0)
- goto error;
+ return NULL;
if (libxlCapsInitGuests(ctx, caps) < 0)
- goto error;
-
- return caps;
+ return NULL;
- error:
- virObjectUnref(caps);
- return NULL;
+ return g_steal_pointer(&caps);
}
/*
diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c
index be5fc505fe..21089c33d7 100644
--- a/src/libxl/libxl_conf.c
+++ b/src/libxl/libxl_conf.c
@@ -70,7 +70,8 @@ libxlDriverConfigDispose(void *obj)
{
libxlDriverConfigPtr cfg = obj;
- virObjectUnref(cfg->caps);
+ if (cfg->caps)
+ g_object_unref(cfg->caps);
libxl_ctx_free(cfg->ctx);
if (cfg->logger)
libxlLoggerFree(cfg->logger);
diff --git a/src/lxc/lxc_conf.c b/src/lxc/lxc_conf.c
index 8469f30b9e..cfb80eaf22 100644
--- a/src/lxc/lxc_conf.c
+++ b/src/lxc/lxc_conf.c
@@ -59,14 +59,12 @@ VIR_ONCE_GLOBAL_INIT(virLXCConfig);
/* Functions */
virCapsPtr virLXCDriverCapsInit(virLXCDriverPtr driver)
{
- virCapsPtr caps;
+ g_autoptr(virCaps) caps = NULL;
virCapsGuestPtr guest;
virArch altArch;
char *lxc_path = NULL;
- if ((caps = virCapabilitiesNew(virArchFromHost(),
- false, false)) == NULL)
- goto error;
+ caps = virCapabilitiesNew(virArchFromHost(), false, false);
/* Some machines have problematic NUMA topology causing
* unexpected failures. We don't want to break the lxc
@@ -164,11 +162,10 @@ virCapsPtr virLXCDriverCapsInit(virLXCDriverPtr driver)
VIR_INFO("No driver, not initializing security driver");
}
- return caps;
+ return g_steal_pointer(&caps);
error:
VIR_FREE(lxc_path);
- virObjectUnref(caps);
return NULL;
}
@@ -180,7 +177,7 @@ virCapsPtr virLXCDriverCapsInit(virLXCDriverPtr driver)
* driver. If @refresh is true, the capabilities will be
* rebuilt first
*
- * The caller must release the reference with virObjetUnref
+ * The caller must release the reference with g_object_unref
*
* Returns: a reference to a virCapsPtr instance or NULL
*/
@@ -194,7 +191,8 @@ virCapsPtr virLXCDriverGetCapabilities(virLXCDriverPtr driver,
return NULL;
lxcDriverLock(driver);
- virObjectUnref(driver->caps);
+ if (driver->caps)
+ g_object_unref(driver->caps);
driver->caps = caps;
} else {
lxcDriverLock(driver);
@@ -207,7 +205,7 @@ virCapsPtr virLXCDriverGetCapabilities(virLXCDriverPtr driver,
}
}
- ret = virObjectRef(driver->caps);
+ ret = g_object_ref(driver->caps);
lxcDriverUnlock(driver);
return ret;
}
diff --git a/src/lxc/lxc_controller.c b/src/lxc/lxc_controller.c
index 453b435dd6..3d3258eabe 100644
--- a/src/lxc/lxc_controller.c
+++ b/src/lxc/lxc_controller.c
@@ -181,7 +181,8 @@ virLXCControllerDriverFree(virLXCDriverPtr driver)
if (!driver)
return;
virObjectUnref(driver->xmlopt);
- virObjectUnref(driver->caps);
+ if (driver->caps)
+ g_object_unref(driver->caps);
virMutexDestroy(&driver->lock);
g_free(driver);
}
diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c
index 851894c459..1c59ddef6d 100644
--- a/src/lxc/lxc_driver.c
+++ b/src/lxc/lxc_driver.c
@@ -197,8 +197,7 @@ static int lxcConnectIsAlive(virConnectPtr conn G_GNUC_UNUSED)
static char *lxcConnectGetCapabilities(virConnectPtr conn) {
virLXCDriverPtr driver = conn->privateData;
- virCapsPtr caps;
- char *xml;
+ g_autoptr(virCaps) caps = NULL;
if (virConnectGetCapabilitiesEnsureACL(conn) < 0)
return NULL;
@@ -206,10 +205,7 @@ static char *lxcConnectGetCapabilities(virConnectPtr conn) {
if (!(caps = virLXCDriverGetCapabilities(driver, true)))
return NULL;
- xml = virCapabilitiesFormatXML(caps);
-
- virObjectUnref(caps);
- return xml;
+ return virCapabilitiesFormatXML(caps);
}
@@ -405,7 +401,7 @@ lxcDomainDefineXMLFlags(virConnectPtr conn, const char *xml, unsigned
int flags)
virObjectEventPtr event = NULL;
virDomainDefPtr oldDef = NULL;
virLXCDriverConfigPtr cfg = virLXCDriverGetConfig(driver);
- virCapsPtr caps = NULL;
+ g_autoptr(virCaps) caps = NULL;
unsigned int parse_flags = VIR_DOMAIN_DEF_PARSE_INACTIVE;
virCheckFlags(VIR_DOMAIN_DEFINE_VALIDATE, NULL);
@@ -462,7 +458,6 @@ lxcDomainDefineXMLFlags(virConnectPtr conn, const char *xml, unsigned
int flags)
virDomainDefFree(oldDef);
virDomainObjEndAPI(&vm);
virObjectEventStateQueue(driver->domainEventState, event);
- virObjectUnref(caps);
virObjectUnref(cfg);
return dom;
}
@@ -940,7 +935,7 @@ static char *lxcConnectDomainXMLFromNative(virConnectPtr conn,
char *xml = NULL;
virDomainDefPtr def = NULL;
virLXCDriverPtr driver = conn->privateData;
- virCapsPtr caps = virLXCDriverGetCapabilities(driver, false);
+ g_autoptr(virCaps) caps = virLXCDriverGetCapabilities(driver, false);
virCheckFlags(0, NULL);
@@ -959,7 +954,6 @@ static char *lxcConnectDomainXMLFromNative(virConnectPtr conn,
xml = virDomainDefFormat(def, driver->xmlopt, 0);
cleanup:
- virObjectUnref(caps);
virDomainDefFree(def);
return xml;
}
@@ -1086,7 +1080,7 @@ lxcDomainCreateXMLWithFiles(virConnectPtr conn,
virDomainPtr dom = NULL;
virObjectEventPtr event = NULL;
virLXCDriverConfigPtr cfg = virLXCDriverGetConfig(driver);
- virCapsPtr caps = NULL;
+ g_autoptr(virCaps) caps = NULL;
unsigned int parse_flags = VIR_DOMAIN_DEF_PARSE_INACTIVE;
virCheckFlags(VIR_DOMAIN_START_AUTODESTROY |
@@ -1156,7 +1150,6 @@ lxcDomainCreateXMLWithFiles(virConnectPtr conn,
virDomainDefFree(def);
virDomainObjEndAPI(&vm);
virObjectEventStateQueue(driver->domainEventState, event);
- virObjectUnref(caps);
virObjectUnref(cfg);
virNWFilterUnlockFilterUpdates();
return dom;
@@ -1235,29 +1228,27 @@ static int lxcNodeGetSecurityModel(virConnectPtr conn,
virSecurityModelPtr secmodel)
{
virLXCDriverPtr driver = conn->privateData;
- virCapsPtr caps = NULL;
- int ret = 0;
+ g_autoptr(virCaps) caps = NULL;
memset(secmodel, 0, sizeof(*secmodel));
if (virNodeGetSecurityModelEnsureACL(conn) < 0)
- goto cleanup;
+ return 0;
if (!(caps = virLXCDriverGetCapabilities(driver, false)))
- goto cleanup;
+ return 0;
/* we treat no driver as success, but simply return no data in *secmodel */
if (caps->host.nsecModels == 0
|| caps->host.secModels[0].model == NULL)
- goto cleanup;
+ return 0;
if (virStrcpy(secmodel->model, caps->host.secModels[0].model,
VIR_SECURITY_MODEL_BUFLEN) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("security model string exceeds max %d bytes"),
VIR_SECURITY_MODEL_BUFLEN - 1);
- ret = -1;
- goto cleanup;
+ return -1;
}
if (virStrcpy(secmodel->doi, caps->host.secModels[0].doi,
@@ -1265,13 +1256,10 @@ static int lxcNodeGetSecurityModel(virConnectPtr conn,
virReportError(VIR_ERR_INTERNAL_ERROR,
_("security DOI string exceeds max %d bytes"),
VIR_SECURITY_DOI_BUFLEN-1);
- ret = -1;
- goto cleanup;
+ return -1;
}
- cleanup:
- virObjectUnref(caps);
- return ret;
+ return 0;
}
@@ -1623,7 +1611,8 @@ static int lxcStateCleanup(void)
virSysinfoDefFree(lxc_driver->hostsysinfo);
virObjectUnref(lxc_driver->hostdevMgr);
- virObjectUnref(lxc_driver->caps);
+ if (lxc_driver->caps)
+ g_object_unref(lxc_driver->caps);
virObjectUnref(lxc_driver->securityManager);
virObjectUnref(lxc_driver->xmlopt);
@@ -1802,7 +1791,7 @@ lxcDomainSetSchedulerParametersFlags(virDomainPtr dom,
unsigned int flags)
{
virLXCDriverPtr driver = dom->conn->privateData;
- virCapsPtr caps = NULL;
+ g_autoptr(virCaps) caps = NULL;
size_t i;
virDomainObjPtr vm = NULL;
virDomainDefPtr def = NULL;
@@ -1924,7 +1913,6 @@ lxcDomainSetSchedulerParametersFlags(virDomainPtr dom,
cleanup:
virDomainDefFree(persistentDefCopy);
virDomainObjEndAPI(&vm);
- virObjectUnref(caps);
virObjectUnref(cfg);
return ret;
}
@@ -4477,7 +4465,7 @@ static int lxcDomainDetachDeviceFlags(virDomainPtr dom,
unsigned int flags)
{
virLXCDriverPtr driver = dom->conn->privateData;
- virCapsPtr caps = NULL;
+ g_autoptr(virCaps) caps = NULL;
virDomainObjPtr vm = NULL;
virDomainDefPtr vmdef = NULL;
virDomainDeviceDefPtr dev = NULL, dev_copy = NULL;
@@ -4563,7 +4551,6 @@ static int lxcDomainDetachDeviceFlags(virDomainPtr dom,
virDomainDeviceDefFree(dev_copy);
virDomainDeviceDefFree(dev);
virDomainObjEndAPI(&vm);
- virObjectUnref(caps);
virObjectUnref(cfg);
return ret;
}
diff --git a/src/lxc/lxc_process.c b/src/lxc/lxc_process.c
index 5199f3806e..699accc633 100644
--- a/src/lxc/lxc_process.c
+++ b/src/lxc/lxc_process.c
@@ -1565,7 +1565,8 @@ int virLXCProcessStart(virConnectPtr conn,
VIR_FREE(pidfile);
VIR_FREE(logfile);
virObjectUnref(cfg);
- virObjectUnref(caps);
+ if (caps)
+ g_object_unref(caps);
virErrorRestore(&err);
diff --git a/src/openvz/openvz_conf.c b/src/openvz/openvz_conf.c
index 78547b8b28..1f70bfc3d9 100644
--- a/src/openvz/openvz_conf.c
+++ b/src/openvz/openvz_conf.c
@@ -151,9 +151,7 @@ virCapsPtr openvzCapsInit(void)
g_autoptr(virCaps) caps = NULL;
virCapsGuestPtr guest;
- if ((caps = virCapabilitiesNew(virArchFromHost(),
- false, false)) == NULL)
- return NULL;
+ caps = virCapabilitiesNew(virArchFromHost(), false, false);
if (!(caps->host.numa = virCapabilitiesHostNUMANewHost()))
return NULL;
@@ -483,7 +481,8 @@ openvzFreeDriver(struct openvz_driver *driver)
virObjectUnref(driver->xmlopt);
virObjectUnref(driver->domains);
- virObjectUnref(driver->caps);
+ if (driver->caps)
+ g_object_unref(driver->caps);
VIR_FREE(driver);
}
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 73a8856f34..4bbd14f7ad 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -1062,13 +1062,11 @@ virQEMUCapsProbeHostCPU(virArch hostArch,
virCapsPtr
virQEMUCapsInit(virFileCachePtr cache)
{
- virCapsPtr caps;
+ g_autoptr(virCaps) caps = NULL;
size_t i;
virArch hostarch = virArchFromHost();
- if ((caps = virCapabilitiesNew(hostarch,
- true, true)) == NULL)
- goto error;
+ caps = virCapabilitiesNew(hostarch, true, true);
if (virCapabilitiesInitCaches(caps) < 0)
VIR_WARN("Failed to get host CPU cache info");
@@ -1096,13 +1094,9 @@ virQEMUCapsInit(virFileCachePtr cache)
if (virQEMUCapsInitGuest(caps, cache,
hostarch,
i) < 0)
- goto error;
-
- return caps;
+ return NULL;
- error:
- virObjectUnref(caps);
- return NULL;
+ return g_steal_pointer(&caps);
}
diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c
index 15837cece4..68df8a419a 100644
--- a/src/qemu/qemu_conf.c
+++ b/src/qemu/qemu_conf.c
@@ -1350,7 +1350,7 @@ virCapsPtr virQEMUDriverCreateCapabilities(virQEMUDriverPtr driver)
* driver. If @refresh is true, the capabilities will be
* rebuilt first
*
- * The caller must release the reference with virObjetUnref
+ * The caller must release the reference with g_object_unref
*
* Returns: a reference to a virCapsPtr instance or NULL
*/
@@ -1364,7 +1364,8 @@ virCapsPtr virQEMUDriverGetCapabilities(virQEMUDriverPtr driver,
return NULL;
qemuDriverLock(driver);
- virObjectUnref(driver->caps);
+ if (driver->caps)
+ g_object_unref(driver->caps);
driver->caps = caps;
} else {
qemuDriverLock(driver);
@@ -1378,7 +1379,8 @@ virCapsPtr virQEMUDriverGetCapabilities(virQEMUDriverPtr driver,
}
}
- ret = virObjectRef(driver->caps);
+ if (driver->caps)
+ ret = g_object_ref(driver->caps);
qemuDriverUnlock(driver);
return ret;
}
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index daa3cb397d..99a5058033 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -1134,7 +1134,8 @@ qemuStateCleanup(void)
virObjectUnref(qemu_driver->xmlopt);
virCPUDefFree(qemu_driver->hostcpu);
virCapabilitiesHostNUMAUnref(qemu_driver->hostnuma);
- virObjectUnref(qemu_driver->caps);
+ if (qemu_driver->caps)
+ g_object_unref(qemu_driver->caps);
ebtablesContextFree(qemu_driver->ebtables);
VIR_FREE(qemu_driver->qemuImgBinary);
virObjectUnref(qemu_driver->domains);
diff --git a/src/security/virt-aa-helper.c b/src/security/virt-aa-helper.c
index 8526b7b985..7b0ae6acad 100644
--- a/src/security/virt-aa-helper.c
+++ b/src/security/virt-aa-helper.c
@@ -79,7 +79,8 @@ vahDeinit(vahControl * ctl)
return -1;
VIR_FREE(ctl->def);
- virObjectUnref(ctl->caps);
+ if (ctl->caps)
+ g_object_unref(ctl->caps);
virObjectUnref(ctl->xmlopt);
VIR_FREE(ctl->files);
VIR_FREE(ctl->virtType);
@@ -632,10 +633,7 @@ get_definition(vahControl * ctl, const char *xmlStr)
if (caps_mockup(ctl, xmlStr) != 0)
return -1;
- if ((ctl->caps = virCapabilitiesNew(ctl->arch, true, true)) == NULL) {
- vah_error(ctl, 0, _("could not allocate memory"));
- return -1;
- }
+ ctl->caps = virCapabilitiesNew(ctl->arch, true, true);
if (!(ctl->xmlopt = virDomainXMLOptionNew(&virAAHelperDomainDefParserConfig,
NULL, NULL, NULL, NULL))) {
diff --git a/src/storage/storage_backend.c b/src/storage/storage_backend.c
index e9f6663e6d..cb573c4945 100644
--- a/src/storage/storage_backend.c
+++ b/src/storage/storage_backend.c
@@ -190,8 +190,7 @@ virStorageBackendGetCapabilities(void)
virCapsPtr caps;
size_t i;
- if (!(caps = virCapabilitiesNew(VIR_ARCH_NONE, false, false)))
- return NULL;
+ caps = virCapabilitiesNew(VIR_ARCH_NONE, false, false);
for (i = 0; i < virStorageBackendsCount; i++)
virCapabilitiesAddStoragePool(caps, virStorageBackends[i]->type);
diff --git a/src/test/test_driver.c b/src/test/test_driver.c
index 7759847c2d..00c3d34a81 100644
--- a/src/test/test_driver.c
+++ b/src/test/test_driver.c
@@ -158,7 +158,8 @@ testDriverDispose(void *obj)
testDriverPtr driver = obj;
size_t i;
- virObjectUnref(driver->caps);
+ if (driver->caps)
+ g_object_unref(driver->caps);
virObjectUnref(driver->xmlopt);
virObjectUnref(driver->domains);
virNodeDeviceObjListFree(driver->devs);
@@ -284,24 +285,23 @@ static virCapsPtr
testBuildCapabilities(virConnectPtr conn)
{
testDriverPtr privconn = conn->privateData;
- virCapsPtr caps;
+ g_autoptr(virCaps) caps = NULL;
virCapsGuestPtr guest;
int guest_types[] = { VIR_DOMAIN_OSTYPE_HVM,
VIR_DOMAIN_OSTYPE_XEN };
size_t i, j;
- if ((caps = virCapabilitiesNew(VIR_ARCH_I686, false, false)) == NULL)
- goto error;
+ caps = virCapabilitiesNew(VIR_ARCH_I686, false, false);
if (virCapabilitiesAddHostFeature(caps, "pae") < 0)
- goto error;
+ return NULL;
if (virCapabilitiesAddHostFeature(caps, "nonpae") < 0)
- goto error;
+ return NULL;
virCapabilitiesHostInitIOMMU(caps);
if (VIR_ALLOC_N(caps->host.pagesSize, 4) < 0)
- goto error;
+ return NULL;
caps->host.pagesSize[caps->host.nPagesSize++] = 4;
caps->host.pagesSize[caps->host.nPagesSize++] = 8;
@@ -317,7 +317,7 @@ testBuildCapabilities(virConnectPtr conn)
if (VIR_ALLOC_N(cpu_cells, privconn->cells[i].numCpus) < 0 ||
VIR_ALLOC_N(pages, nPages) < 0) {
VIR_FREE(cpu_cells);
- goto error;
+ return NULL;
}
memcpy(cpu_cells, privconn->cells[i].cpus,
@@ -347,7 +347,7 @@ testBuildCapabilities(virConnectPtr conn)
NULL,
0,
NULL)) == NULL)
- goto error;
+ return NULL;
if (virCapabilitiesAddGuestDomain(guest,
VIR_DOMAIN_VIRT_TEST,
@@ -355,7 +355,7 @@ testBuildCapabilities(virConnectPtr conn)
NULL,
0,
NULL) == NULL)
- goto error;
+ return NULL;
virCapabilitiesAddGuestFeature(guest, VIR_CAPS_GUEST_FEATURE_TYPE_PAE);
virCapabilitiesAddGuestFeature(guest, VIR_CAPS_GUEST_FEATURE_TYPE_NONPAE);
@@ -363,16 +363,12 @@ testBuildCapabilities(virConnectPtr conn)
caps->host.nsecModels = 1;
if (VIR_ALLOC_N(caps->host.secModels, caps->host.nsecModels) < 0)
- goto error;
+ return NULL;
caps->host.secModels[0].model = g_strdup("testSecurity");
caps->host.secModels[0].doi = g_strdup("");
- return caps;
-
- error:
- virObjectUnref(caps);
- return NULL;
+ return g_steal_pointer(&caps);
}
diff --git a/src/vbox/vbox_common.c b/src/vbox/vbox_common.c
index e98ae04ec0..0e009a5739 100644
--- a/src/vbox/vbox_common.c
+++ b/src/vbox/vbox_common.c
@@ -89,9 +89,7 @@ vboxCapsInit(void)
g_autoptr(virCaps) caps = NULL;
virCapsGuestPtr guest = NULL;
- if ((caps = virCapabilitiesNew(virArchFromHost(),
- false, false)) == NULL)
- return NULL;
+ caps = virCapabilitiesNew(virArchFromHost(), false, false);
if (!(caps->host.numa = virCapabilitiesHostNUMANewHost()))
return NULL;
@@ -124,7 +122,8 @@ vboxDriverDispose(void *obj)
{
vboxDriverPtr driver = obj;
- virObjectUnref(driver->caps);
+ if (driver->caps)
+ g_object_unref(driver->caps);
virObjectUnref(driver->xmlopt);
}
diff --git a/src/vmware/vmware_conf.c b/src/vmware/vmware_conf.c
index fd62bb96f7..ee21e96971 100644
--- a/src/vmware/vmware_conf.c
+++ b/src/vmware/vmware_conf.c
@@ -54,7 +54,8 @@ vmwareFreeDriver(struct vmware_driver *driver)
virMutexDestroy(&driver->lock);
virObjectUnref(driver->domains);
- virObjectUnref(driver->caps);
+ if (driver->caps)
+ g_object_unref(driver->caps);
virObjectUnref(driver->xmlopt);
VIR_FREE(driver->vmrun);
VIR_FREE(driver);
@@ -64,12 +65,10 @@ vmwareFreeDriver(struct vmware_driver *driver)
virCapsPtr
vmwareCapsInit(void)
{
- virCapsPtr caps = NULL;
+ g_autoptr(virCaps) caps = NULL;
virCapsGuestPtr guest = NULL;
- if ((caps = virCapabilitiesNew(virArchFromHost(),
- false, false)) == NULL)
- goto error;
+ caps = virCapabilitiesNew(virArchFromHost(), false, false);
if (!(caps->host.numa = virCapabilitiesHostNUMANewHost()))
goto error;
@@ -116,11 +115,10 @@ vmwareCapsInit(void)
guest = NULL;
}
- return caps;
+ return g_steal_pointer(&caps);
error:
virCapabilitiesFreeGuest(guest);
- virObjectUnref(caps);
return NULL;
}
diff --git a/src/vz/vz_driver.c b/src/vz/vz_driver.c
index d882b91def..517259131d 100644
--- a/src/vz/vz_driver.c
+++ b/src/vz/vz_driver.c
@@ -98,7 +98,7 @@ vzCapsAddGuestDomain(virCapsPtr caps,
static virCapsPtr
vzBuildCapabilities(void)
{
- virCapsPtr caps = NULL;
+ g_autoptr(virCaps) caps = NULL;
virNodeInfo nodeinfo;
virDomainOSType ostypes[] = {
VIR_DOMAIN_OSTYPE_HVM,
@@ -112,15 +112,13 @@ vzBuildCapabilities(void)
};
size_t i, j, k;
- if ((caps = virCapabilitiesNew(virArchFromHost(),
- false, false)) == NULL)
- return NULL;
+ caps = virCapabilitiesNew(virArchFromHost(), false, false);
if (!(caps->host.numa = virCapabilitiesHostNUMANewHost()))
- goto error;
+ return NULL;
if (virCapabilitiesInitCaches(caps) < 0)
- goto error;
+ return NULL;
G_STATIC_ASSERT(G_N_ELEMENTS(archs) == G_N_ELEMENTS(emulators));
@@ -129,23 +127,19 @@ vzBuildCapabilities(void)
for (k = 0; k < G_N_ELEMENTS(emulators); k++)
if (vzCapsAddGuestDomain(caps, ostypes[i], archs[j],
emulators[k], virt_types[k]) < 0)
- goto error;
+ return NULL;
if (virCapabilitiesGetNodeInfo(&nodeinfo))
- goto error;
+ return NULL;
if (!(caps->host.cpu = virCPUGetHost(caps->host.arch, VIR_CPU_TYPE_HOST,
&nodeinfo, NULL)))
- goto error;
+ return NULL;
if (virCapabilitiesAddHostMigrateTransport(caps, "vzmigr") < 0)
- goto error;
-
- return caps;
+ return NULL;
- error:
- virObjectUnref(caps);
- return NULL;
+ return g_steal_pointer(&caps);
}
static void vzDriverDispose(void * obj)
@@ -154,7 +148,8 @@ static void vzDriverDispose(void * obj)
prlsdkDisconnect(driver);
virObjectUnref(driver->domains);
- virObjectUnref(driver->caps);
+ if (driver->caps)
+ g_object_unref(driver->caps);
virObjectUnref(driver->xmlopt);
virObjectUnref(driver->domainEventState);
virSysinfoDefFree(driver->hostsysinfo);
diff --git a/tests/bhyveargv2xmltest.c b/tests/bhyveargv2xmltest.c
index 735cc4b338..5de5b48a8e 100644
--- a/tests/bhyveargv2xmltest.c
+++ b/tests/bhyveargv2xmltest.c
@@ -195,7 +195,7 @@ mymain(void)
DO_TEST("bhyveload-bootorder");
DO_TEST_FAIL("extraargs");
- virObjectUnref(driver.caps);
+ g_object_unref(driver.caps);
virObjectUnref(driver.xmlopt);
return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
diff --git a/tests/bhyvexml2argvtest.c b/tests/bhyvexml2argvtest.c
index 9e7eb218b8..9ea0d76f06 100644
--- a/tests/bhyvexml2argvtest.c
+++ b/tests/bhyvexml2argvtest.c
@@ -249,7 +249,7 @@ mymain(void)
driver.bhyvecaps &= ~BHYVE_CAP_CPUTOPOLOGY;
DO_TEST_FAILURE("cputopology");
- virObjectUnref(driver.caps);
+ g_object_unref(driver.caps);
virObjectUnref(driver.xmlopt);
virPortAllocatorRangeFree(driver.remotePorts);
diff --git a/tests/bhyvexml2xmltest.c b/tests/bhyvexml2xmltest.c
index a0c20a14c1..cb0f6022c3 100644
--- a/tests/bhyvexml2xmltest.c
+++ b/tests/bhyvexml2xmltest.c
@@ -127,7 +127,7 @@ mymain(void)
/* USB xhci tablet */
DO_TEST_DIFFERENT("input-xhci-tablet");
- virObjectUnref(driver.caps);
+ g_object_unref(driver.caps);
virObjectUnref(driver.xmlopt);
return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
diff --git a/tests/domainconftest.c b/tests/domainconftest.c
index 754ef2eb3d..ada397b925 100644
--- a/tests/domainconftest.c
+++ b/tests/domainconftest.c
@@ -103,7 +103,8 @@ mymain(void)
DO_TEST_GET_FS("/dev/pts", false);
DO_TEST_GET_FS("/doesnotexist", false);
- virObjectUnref(caps);
+ if (caps)
+ g_object_unref(caps);
virObjectUnref(xmlopt);
cleanup:
diff --git a/tests/genericxml2xmltest.c b/tests/genericxml2xmltest.c
index 501bcdb0a1..0659ca1b28 100644
--- a/tests/genericxml2xmltest.c
+++ b/tests/genericxml2xmltest.c
@@ -195,7 +195,8 @@ mymain(void)
DO_TEST_BACKUP("backup-push");
DO_TEST_BACKUP("backup-push-seclabel");
- virObjectUnref(caps);
+ if (caps)
+ g_object_unref(caps);
virObjectUnref(xmlopt);
return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
diff --git a/tests/openvzutilstest.c b/tests/openvzutilstest.c
index 2b1a9fb5ce..48de2d1c7d 100644
--- a/tests/openvzutilstest.c
+++ b/tests/openvzutilstest.c
@@ -132,7 +132,7 @@ testReadNetworkConf(const void *data G_GNUC_UNUSED)
cleanup:
virObjectUnref(driver.xmlopt);
- virObjectUnref(driver.caps);
+ g_object_unref(driver.caps);
VIR_FREE(actual);
virDomainDefFree(def);
diff --git a/tests/qemucaps2xmltest.c b/tests/qemucaps2xmltest.c
index 7a5125fea6..349af0e431 100644
--- a/tests/qemucaps2xmltest.c
+++ b/tests/qemucaps2xmltest.c
@@ -99,7 +99,7 @@ static virCapsPtr
testGetCaps(char *capsData, const testQemuData *data)
{
virQEMUCapsPtr qemuCaps = NULL;
- virCapsPtr caps = NULL;
+ g_autoptr(virCaps) caps = NULL;
virArch arch = virArchFromString(data->archName);
g_autofree char *binary = NULL;
@@ -110,10 +110,7 @@ testGetCaps(char *capsData, const testQemuData *data)
goto error;
}
- if ((caps = virCapabilitiesNew(arch, false, false)) == NULL) {
- fprintf(stderr, "failed to create the fake capabilities");
- goto error;
- }
+ caps = virCapabilitiesNew(arch, false, false);
if (virQEMUCapsInitGuestFromBinary(caps,
binary,
@@ -124,11 +121,10 @@ testGetCaps(char *capsData, const testQemuData *data)
}
virObjectUnref(qemuCaps);
- return caps;
+ return g_steal_pointer(&caps);
error:
virObjectUnref(qemuCaps);
- virObjectUnref(caps);
return NULL;
}
@@ -140,7 +136,7 @@ testQemuCapsXML(const void *opaque)
char *capsFile = NULL, *xmlFile = NULL;
char *capsData = NULL;
char *capsXml = NULL;
- virCapsPtr capsProvided = NULL;
+ g_autoptr(virCaps) capsProvided = NULL;
xmlFile = g_strdup_printf("%s/caps.%s.xml", data->outputDir,
data->archName);
@@ -167,7 +163,6 @@ testQemuCapsXML(const void *opaque)
VIR_FREE(capsFile);
VIR_FREE(capsXml);
VIR_FREE(capsData);
- virObjectUnref(capsProvided);
return ret;
}
diff --git a/tests/qemuhotplugtest.c b/tests/qemuhotplugtest.c
index d9244dca44..b7ba016306 100644
--- a/tests/qemuhotplugtest.c
+++ b/tests/qemuhotplugtest.c
@@ -245,7 +245,7 @@ testQemuHotplug(const void *data)
unsigned int device_parse_flags = 0;
virDomainObjPtr vm = NULL;
virDomainDeviceDefPtr dev = NULL;
- virCapsPtr caps = NULL;
+ g_autoptr(virCaps) caps = NULL;
qemuMonitorTestPtr test_mon = NULL;
qemuDomainObjPrivatePtr priv = NULL;
@@ -356,7 +356,6 @@ testQemuHotplug(const void *data)
test->vm = NULL;
}
virDomainDeviceDefFree(dev);
- virObjectUnref(caps);
qemuMonitorTestFree(test_mon);
return ((ret < 0 && fail) || (!ret && !fail)) ? 0 : -1;
}
@@ -412,7 +411,7 @@ testQemuHotplugCpuPrepare(const char *test,
virHashTablePtr qmpschema)
{
qemuDomainObjPrivatePtr priv = NULL;
- virCapsPtr caps = NULL;
+ g_autoptr(virCaps) caps = NULL;
char *prefix = NULL;
struct testQemuHotplugCpuData *data = NULL;
@@ -464,7 +463,6 @@ testQemuHotplugCpuPrepare(const char *test,
return data;
error:
- virObjectUnref(caps);
testQemuHotplugCpuDataFree(data);
VIR_FREE(prefix);
return NULL;
diff --git a/tests/testutils.c b/tests/testutils.c
index 5fd81b70a2..5383df083d 100644
--- a/tests/testutils.c
+++ b/tests/testutils.c
@@ -909,9 +909,7 @@ virCapsPtr virTestGenericCapsInit(void)
g_autoptr(virCaps) caps = NULL;
virCapsGuestPtr guest;
- if ((caps = virCapabilitiesNew(VIR_ARCH_X86_64,
- false, false)) == NULL)
- return NULL;
+ caps = virCapabilitiesNew(VIR_ARCH_X86_64, false, false);
if ((guest = virCapabilitiesAddGuest(caps, VIR_DOMAIN_OSTYPE_HVM, VIR_ARCH_I686,
"/usr/bin/acme-virt", NULL,
diff --git a/tests/testutilslxc.c b/tests/testutilslxc.c
index b5e2f542e7..2f28975332 100644
--- a/tests/testutilslxc.c
+++ b/tests/testutilslxc.c
@@ -11,7 +11,7 @@
virCapsPtr
testLXCCapsInit(void)
{
- virCapsPtr caps;
+ g_autoptr(virCaps) caps = NULL;
virCapsGuestPtr guest;
if ((caps = virCapabilitiesNew(VIR_ARCH_X86_64,
@@ -22,20 +22,20 @@ testLXCCapsInit(void)
VIR_ARCH_I686,
"/usr/libexec/libvirt_lxc", NULL,
0, NULL)) == NULL)
- goto error;
+ return NULL;
if (!virCapabilitiesAddGuestDomain(guest, VIR_DOMAIN_VIRT_LXC, NULL, NULL, 0, NULL))
- goto error;
+ return NULL;
if ((guest = virCapabilitiesAddGuest(caps, VIR_DOMAIN_OSTYPE_EXE,
VIR_ARCH_X86_64,
"/usr/libexec/libvirt_lxc", NULL,
0, NULL)) == NULL)
- goto error;
+ return NULL;
if (!virCapabilitiesAddGuestDomain(guest, VIR_DOMAIN_VIRT_LXC, NULL, NULL, 0, NULL))
- goto error;
+ return NULL;
if (virTestGetDebug()) {
@@ -43,18 +43,14 @@ testLXCCapsInit(void)
caps_str = virCapabilitiesFormatXML(caps);
if (!caps_str)
- goto error;
+ return NULL;
VIR_TEST_DEBUG("LXC driver capabilities:\n%s", caps_str);
VIR_FREE(caps_str);
}
- return caps;
-
- error:
- virObjectUnref(caps);
- return NULL;
+ return g_steal_pointer(&caps);
}
@@ -81,7 +77,8 @@ void
testLXCDriverFree(virLXCDriverPtr driver)
{
virObjectUnref(driver->xmlopt);
- virObjectUnref(driver->caps);
+ if (driver->caps)
+ g_object_unref(driver->caps);
virMutexDestroy(&driver->lock);
g_free(driver);
}
diff --git a/tests/testutilsqemu.c b/tests/testutilsqemu.c
index f3b4e2b3b2..082467f58e 100644
--- a/tests/testutilsqemu.c
+++ b/tests/testutilsqemu.c
@@ -196,11 +196,10 @@ testQemuAddGuest(virCapsPtr caps,
virCapsPtr testQemuCapsInit(void)
{
- virCapsPtr caps;
+ g_autoptr(virCaps) caps = NULL;
size_t i;
- if (!(caps = virCapabilitiesNew(VIR_ARCH_X86_64, false, false)))
- return NULL;
+ caps = virCapabilitiesNew(VIR_ARCH_X86_64, false, false);
/* Add dummy 'none' security_driver. This is equal to setting
* security_driver = "none" in qemu.conf. */
@@ -231,11 +230,10 @@ virCapsPtr testQemuCapsInit(void)
VIR_FREE(caps_str);
}
- return caps;
+ return g_steal_pointer(&caps);
cleanup:
caps->host.cpu = NULL;
- virObjectUnref(caps);
return NULL;
}
@@ -314,7 +312,8 @@ void qemuTestDriverFree(virQEMUDriver *driver)
}
virObjectUnref(driver->qemuCapsCache);
virObjectUnref(driver->xmlopt);
- virObjectUnref(driver->caps);
+ if (driver->caps)
+ g_object_unref(driver->caps);
virObjectUnref(driver->config);
virObjectUnref(driver->securityManager);
}
diff --git a/tests/testutilsxen.c b/tests/testutilsxen.c
index d50c3003da..7da90cdd1e 100644
--- a/tests/testutilsxen.c
+++ b/tests/testutilsxen.c
@@ -11,7 +11,7 @@
static virCapsPtr
testXLInitCaps(void)
{
- virCapsPtr caps;
+ g_autoptr(virCaps) caps = NULL;
virCapsGuestPtr guest;
virCapsGuestMachinePtr *machines;
int nmachines;
@@ -78,7 +78,6 @@ testXLInitCaps(void)
cleanup:
virCapabilitiesFreeMachines(machines, nmachines);
- virObjectUnref(caps);
return NULL;
}
diff --git a/tests/vircaps2xmltest.c b/tests/vircaps2xmltest.c
index 17cd600a7a..02907b5a91 100644
--- a/tests/vircaps2xmltest.c
+++ b/tests/vircaps2xmltest.c
@@ -38,7 +38,7 @@ test_virCapabilities(const void *opaque)
{
struct virCapabilitiesData *data = (struct virCapabilitiesData *) opaque;
const char *archStr = virArchToString(data->arch);
- virCapsPtr caps = NULL;
+ g_autoptr(virCaps) caps = NULL;
char *capsXML = NULL;
char *path = NULL;
char *system = NULL;
@@ -55,9 +55,6 @@ test_virCapabilities(const void *opaque)
virFileWrapperAddPrefix("/sys/fs/resctrl", resctrl);
caps = virCapabilitiesNew(data->arch, data->offlineMigrate,
data->liveMigrate);
- if (!caps)
- goto cleanup;
-
if (!(caps->host.numa = virCapabilitiesHostNUMANewHost()))
goto cleanup;
@@ -82,7 +79,6 @@ test_virCapabilities(const void *opaque)
VIR_FREE(resctrl);
VIR_FREE(path);
VIR_FREE(capsXML);
- virObjectUnref(caps);
return ret;
}
diff --git a/tests/vircapstest.c b/tests/vircapstest.c
index 08eb017a76..9b37faa1d6 100644
--- a/tests/vircapstest.c
+++ b/tests/vircapstest.c
@@ -151,11 +151,10 @@ static int
test_virCapsDomainDataLookupQEMU(const void *data G_GNUC_UNUSED)
{
int ret = 0;
- virCapsPtr caps = NULL;
+ g_autoptr(virCaps) caps = NULL;
if (!(caps = testQemuCapsInit())) {
- ret = -1;
- goto out;
+ return -1;
}
/* Checking each parameter individually */
@@ -199,8 +198,6 @@ test_virCapsDomainDataLookupQEMU(const void *data G_GNUC_UNUSED)
"/usr/bin/qemu-system-aarch64", "pc");
CAPS_EXPECT_ERR(-1, VIR_ARCH_NONE, VIR_DOMAIN_VIRT_VMWARE, NULL, "pc");
- out:
- virObjectUnref(caps);
return ret;
}
#endif /* WITH_QEMU */
@@ -210,11 +207,10 @@ static int
test_virCapsDomainDataLookupLXC(const void *data G_GNUC_UNUSED)
{
int ret = 0;
- virCapsPtr caps = NULL;
+ g_autoptr(virCaps) caps = NULL;
if (!(caps = testLXCCapsInit())) {
- ret = -1;
- goto out;
+ return -1;
}
CAPSCOMP(-1, VIR_ARCH_NONE, VIR_DOMAIN_VIRT_NONE, NULL, NULL,
@@ -224,8 +220,6 @@ test_virCapsDomainDataLookupLXC(const void *data G_GNUC_UNUSED)
VIR_DOMAIN_OSTYPE_EXE, VIR_ARCH_X86_64,
VIR_DOMAIN_VIRT_LXC, "/usr/libexec/libvirt_lxc", NULL);
- out:
- virObjectUnref(caps);
return ret;
}
#endif /* WITH_LXC */
diff --git a/tests/virresctrltest.c b/tests/virresctrltest.c
index 91baef506d..76cc2ef3c6 100644
--- a/tests/virresctrltest.c
+++ b/tests/virresctrltest.c
@@ -24,7 +24,7 @@ test_virResctrlGetUnused(const void *opaque)
g_autoptr(virResctrlAlloc) alloc = NULL;
char *schemata_str = NULL;
char *schemata_file;
- virCapsPtr caps = NULL;
+ g_autoptr(virCaps) caps = NULL;
system_dir = g_strdup_printf("%s/vircaps2xmldata/linux-%s/system",
abs_srcdir,
data->filename);
@@ -65,7 +65,6 @@ test_virResctrlGetUnused(const void *opaque)
ret = 0;
cleanup:
- virObjectUnref(caps);
VIR_FREE(system_dir);
VIR_FREE(resctrl_dir);
VIR_FREE(schemata_str);
diff --git a/tests/vmx2xmltest.c b/tests/vmx2xmltest.c
index 1966aed6fe..b5c557fe33 100644
--- a/tests/vmx2xmltest.c
+++ b/tests/vmx2xmltest.c
@@ -25,9 +25,6 @@ testCapsInit(void)
caps = virCapabilitiesNew(VIR_ARCH_I686, true, true);
- if (caps == NULL)
- return;
-
virCapabilitiesAddHostMigrateTransport(caps, "vpxmigr");
/* i686 guest */
@@ -61,8 +58,7 @@ testCapsInit(void)
return;
failure:
- virObjectUnref(caps);
- caps = NULL;
+ g_clear_object(&caps);
}
static int
@@ -285,7 +281,7 @@ mymain(void)
DO_TEST("datacenterpath", "datacenterpath");
- virObjectUnref(caps);
+ g_object_unref(caps);
virObjectUnref(xmlopt);
return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
diff --git a/tests/xml2vmxtest.c b/tests/xml2vmxtest.c
index 8f0a2a72a4..d6c7eb4f53 100644
--- a/tests/xml2vmxtest.c
+++ b/tests/xml2vmxtest.c
@@ -25,9 +25,6 @@ testCapsInit(void)
caps = virCapabilitiesNew(VIR_ARCH_I686, true, true);
- if (caps == NULL)
- return;
-
virCapabilitiesAddHostMigrateTransport(caps, "esx");
@@ -62,9 +59,9 @@ testCapsInit(void)
return;
failure:
- virObjectUnref(caps);
+ if (caps)
+ g_clear_object(&caps);
virObjectUnref(xmlopt);
- caps = NULL;
}
static int
@@ -294,7 +291,7 @@ mymain(void)
DO_TEST("datacenterpath", "datacenterpath", 4);
- virObjectUnref(caps);
+ g_object_unref(caps);
virObjectUnref(xmlopt);
return result == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
--
2.25.1