From nobody Fri Dec 19 20:14:30 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) client-ip=207.211.31.81; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1587477032; cv=none; d=zohomail.com; s=zohoarc; b=W0f6aURSOPVPCtp9BSiVm4e6tOoFxFYVYxTaqqFTqwpUsVBmlvUNgqjPoMnYDtSD81AmKeEnzdeNg2KNztd2O8+84366afOcq/c7ytkS62wRcJSyThBYR5TPMe7MW6aAsA0kWuG8ykrJiPvAFTFVCZC9SU2f67Ju2H9F33HHfFM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1587477032; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=1S8aIB+B01diI+YFFDtfL/7zahtU0OWToPhV+fVsXAg=; b=jqTZ1iZ6xMBwO/QfC+YYrJVuQgE1Obq6kpx38OPuIWnH9n54tLoTMKmhT+0ukhEXleBz8Hm5EvWGzCHIb+WTjGuQu5ZyrnJ4GEJwUS/8faCyHDEC2VrqJfpZN9iHiVT7R2tYR5D5mV4ZLU6x9g9pjQ1P3RCMPBm/VXXovHqCwdY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-delivery-1.mimecast.com (us-smtp-2.mimecast.com [207.211.31.81]) by mx.zohomail.com with SMTPS id 1587477032858372.03439983161843; Tue, 21 Apr 2020 06:50:32 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-105-LscizHmVOv-MIqaj98y-Pg-1; Tue, 21 Apr 2020 09:50:28 -0400 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 140B01B2C983; Tue, 21 Apr 2020 13:50:22 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id D218E28988; Tue, 21 Apr 2020 13:50:21 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 79C1B18089D0; Tue, 21 Apr 2020 13:50:21 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 03LDo6YG003225 for ; Tue, 21 Apr 2020 09:50:06 -0400 Received: by smtp.corp.redhat.com (Postfix) id 0D58D2093CE6; Tue, 21 Apr 2020 13:50:06 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast04.extmail.prod.ext.rdu2.redhat.com [10.11.55.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 0805D2026E1C for ; Tue, 21 Apr 2020 13:50:03 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 9B5511019E15 for ; Tue, 21 Apr 2020 13:50:03 +0000 (UTC) Received: from mail-wr1-f50.google.com (mail-wr1-f50.google.com [209.85.221.50]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-370-b0QNQUM2OAWT51U1rkIdfQ-1; Tue, 21 Apr 2020 09:50:01 -0400 Received: by mail-wr1-f50.google.com with SMTP id d17so16514029wrg.11 for ; Tue, 21 Apr 2020 06:50:00 -0700 (PDT) Received: from localhost.localdomain (public-gprs377075.centertel.pl. [37.47.104.52]) by smtp.gmail.com with ESMTPSA id q10sm3981826wrv.95.2020.04.21.06.49.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Apr 2020 06:49:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1587477031; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=1S8aIB+B01diI+YFFDtfL/7zahtU0OWToPhV+fVsXAg=; b=GeiSoT/mSr9hgulRyZKjblz921G8O9pefAiDuQ2nyyAARupl3vqiLFcTcDFYEZN1v1YkdS ig/H2BZCFTPig6OtJ2R+jbS+/pKC6g1xK5nqwU2o4hvcNpgx1IdWn5FxnuoliuHN1JWd93 Rb96Ue6Z3FVAWvd8RlGTfzBKgw4iHi8= X-MC-Unique: LscizHmVOv-MIqaj98y-Pg-1 X-MC-Unique: b0QNQUM2OAWT51U1rkIdfQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=sDS3jTB5WqwP/GKNg+yjjRngsbyzVj6u02mEkw859aU=; b=fVBvwbB63RXRU2tnpg+qOzfZkAly8krG7n3QcgqHCI9PM5MmiDmpbOok9ioF8QhNEs lsGoO63oeh9dxFh0FzcUf/30u2VpsrICVj5lXafyq3PLMQn1hjgNhdUNHc3Teb0yKPJk ySwLXSctbVDy2fJ6CkVuIDzLj9+kqFXxc4gJr0EAHEi0hmNULMwlZlw0+gA3OA/Q2wIP FbJ/2KnnjrQrlcPA7/izukop+495CTHU6duDM+afEBocKb46YZNDBNbim53NvMc+/409 VlWwTYt0xVdGk2l3jTJMmyhLoUPoU8rnSvGg4o+BntuV0ug0GiNC+PUWEf6lH8d1KboZ ZADw== X-Gm-Message-State: AGi0PuYQNO6XHZgppiReTW0+UrqGKDBF05qcyXYX9iGIa7pOL2TpiYZ1 x744cLaaJJ0zUiIlvlwacrttEWkst7k= X-Google-Smtp-Source: APiQypLpRMfYdxdp2LjFtM/S9042si6luVFLHzxC7/nnbtbbiASAggQFxn+UkAaQVfCkxD08S68yEQ== X-Received: by 2002:adf:ca0e:: with SMTP id o14mr26048587wrh.254.1587476998349; Tue, 21 Apr 2020 06:49:58 -0700 (PDT) From: Rafael Fonseca To: libvir-list@redhat.com Subject: [PATCH v2 02/40] conf: capabilities: convert virCaps to GOBject Date: Tue, 21 Apr 2020 15:48:43 +0200 Message-Id: <20200421134921.3717019-3-r4f4rfs@gmail.com> In-Reply-To: <20200421134921.3717019-1-r4f4rfs@gmail.com> References: <20200421134921.3717019-1-r4f4rfs@gmail.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id 03LDo6YG003225 X-loop: libvir-list@redhat.com Cc: Rafael Fonseca X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" Signed-off-by: Rafael Fonseca --- src/bhyve/bhyve_capabilities.c | 16 ++++------- src/bhyve/bhyve_driver.c | 29 +++++++------------ src/conf/capabilities.c | 51 +++++++++++++++++++-------------- src/conf/capabilities.h | 6 ++-- src/conf/storage_capabilities.c | 4 +-- src/conf/virconftypes.h | 3 +- src/esx/esx_driver.c | 24 ++++++---------- src/libvirt_private.syms | 1 + src/libxl/libxl_capabilities.c | 19 +++++------- src/libxl/libxl_conf.c | 2 +- src/lxc/lxc_conf.c | 15 ++++------ src/lxc/lxc_controller.c | 2 +- src/lxc/lxc_driver.c | 44 ++++++++++------------------ src/lxc/lxc_process.c | 2 +- src/openvz/openvz_conf.c | 6 ++-- src/qemu/qemu_capabilities.c | 14 +++------ src/qemu/qemu_conf.c | 6 ++-- src/qemu/qemu_driver.c | 2 +- src/security/virt-aa-helper.c | 7 ++--- src/storage/storage_backend.c | 3 +- src/test/test_driver.c | 27 +++++++---------- src/vbox/vbox_common.c | 6 ++-- src/vmware/vmware_conf.c | 11 +++---- src/vz/vz_driver.c | 26 +++++++---------- tests/bhyveargv2xmltest.c | 2 +- tests/bhyvexml2argvtest.c | 2 +- tests/bhyvexml2xmltest.c | 2 +- tests/domainconftest.c | 2 +- tests/genericxml2xmltest.c | 2 +- tests/openvzutilstest.c | 2 +- tests/qemucaps2xmltest.c | 13 +++------ tests/qemuhotplugtest.c | 6 ++-- tests/testutils.c | 4 +-- tests/testutilslxc.c | 20 ++++++------- tests/testutilsqemu.c | 10 +++---- tests/testutilsxen.c | 3 +- tests/vircaps2xmltest.c | 6 +--- tests/vircapstest.c | 14 +++------ tests/virresctrltest.c | 3 +- tests/vmx2xmltest.c | 8 ++---- tests/xml2vmxtest.c | 8 ++---- 41 files changed, 167 insertions(+), 266 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 =3D NULL; virCapsGuestPtr guest; =20 - if ((caps =3D virCapabilitiesNew(virArchFromHost(), - false, false)) =3D=3D NULL) - return NULL; + caps =3D virCapabilitiesNew(virArchFromHost(), false, false); =20 if ((guest =3D virCapabilitiesAddGuest(caps, VIR_DOMAIN_OSTYPE_HVM, VIR_ARCH_X86_64, "bhyve", NULL, 0, NULL)) =3D=3D NULL) - goto error; + return NULL; =20 if (virCapabilitiesAddGuestDomain(guest, VIR_DOMAIN_VIRT_BHYVE, NULL, NULL, 0, NULL) =3D=3D NULL) - goto error; + return NULL; =20 if (!(caps->host.cpu =3D virCPUProbeHost(caps->host.arch))) VIR_WARN("Failed to get host CPU"); =20 - return caps; - - error: - virObjectUnref(caps); - return NULL; + return g_steal_pointer(&caps); } =20 int diff --git a/src/bhyve/bhyve_driver.c b/src/bhyve/bhyve_driver.c index b6204c7fb9..bbaf6ea1f5 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); } =20 static char * bhyveConnectGetCapabilities(virConnectPtr conn) { bhyveConnPtr privconn =3D conn->privateData; - virCapsPtr caps; - char *xml =3D NULL; + g_autoptr(virCaps) caps =3D NULL; =20 if (virConnectGetCapabilitiesEnsureACL(conn) < 0) return NULL; @@ -149,15 +148,10 @@ bhyveConnectGetCapabilities(virConnectPtr conn) if (!(caps =3D bhyveDriverGetCapabilities(privconn))) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Unable to get Capabilities")); - goto cleanup; + return NULL; } =20 - if (!(xml =3D virCapabilitiesFormatXML(caps))) - goto cleanup; - - cleanup: - virObjectUnref(caps); - return xml; + return virCapabilitiesFormatXML(caps); } =20 static virDomainObjPtr @@ -508,7 +502,7 @@ bhyveDomainDefineXMLFlags(virConnectPtr conn, const cha= r *xml, unsigned int flag virDomainDefPtr oldDef =3D NULL; virDomainObjPtr vm =3D NULL; virObjectEventPtr event =3D NULL; - virCapsPtr caps =3D NULL; + g_autoptr(virCaps) caps =3D NULL; unsigned int parse_flags =3D VIR_DOMAIN_DEF_PARSE_INACTIVE; =20 virCheckFlags(VIR_DOMAIN_DEFINE_VALIDATE, NULL); @@ -555,7 +549,6 @@ bhyveDomainDefineXMLFlags(virConnectPtr conn, const cha= r *xml, unsigned int flag dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); =20 cleanup: - virObjectUnref(caps); virDomainDefFree(def); virDomainDefFree(oldDef); virDomainObjEndAPI(&vm); @@ -1188,7 +1181,7 @@ bhyveStateCleanup(void) return -1; =20 virObjectUnref(bhyve_driver->domains); - virObjectUnref(bhyve_driver->caps); + g_clear_object(&bhyve_driver->caps); virObjectUnref(bhyve_driver->xmlopt); virSysinfoDefFree(bhyve_driver->hostsysinfo); virObjectUnref(bhyve_driver->closeCallbacks); @@ -1440,19 +1433,19 @@ bhyveConnectCompareCPU(virConnectPtr conn, { bhyveConnPtr driver =3D conn->privateData; int ret =3D VIR_CPU_COMPARE_ERROR; - virCapsPtr caps =3D NULL; + g_autoptr(virCaps) caps =3D NULL; bool failIncompatible; =20 virCheckFlags(VIR_CONNECT_COMPARE_CPU_FAIL_INCOMPATIBLE, VIR_CPU_COMPARE_ERROR); =20 if (virConnectCompareCPUEnsureACL(conn) < 0) - goto cleanup; + return ret; =20 failIncompatible =3D !!(flags & VIR_CONNECT_COMPARE_CPU_FAIL_INCOMPATI= BLE); =20 if (!(caps =3D bhyveDriverGetCapabilities(driver))) - goto cleanup; + return ret; =20 if (!caps->host.cpu || !caps->host.cpu->model) { @@ -1468,8 +1461,6 @@ bhyveConnectCompareCPU(virConnectPtr conn, xmlDesc, failIncompatible); } =20 - cleanup: - virObjectUnref(caps); return ret; } =20 diff --git a/src/conf/capabilities.c b/src/conf/capabilities.c index 0741d76731..7da67a6ce3 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", ); =20 -static virClassPtr virCapsClass; -static void virCapsDispose(void *obj); +G_DEFINE_TYPE(virCaps, vir_caps, G_TYPE_OBJECT); =20 -static int virCapabilitiesOnceInit(void) -{ - if (!VIR_CLASS_NEW(virCaps, virClassForObject())) - return -1; - - return 0; -} - -VIR_ONCE_GLOBAL_INIT(virCapabilities); =20 /** * virCapabilitiesNew: @@ -80,13 +70,7 @@ virCapabilitiesNew(virArch hostarch, bool offlineMigrate, bool liveMigrate) { - virCapsPtr caps; - - if (virCapabilitiesInitialize() < 0) - return NULL; - - if (!(caps =3D virObjectNew(virCapsClass))) - return NULL; + virCapsPtr caps =3D VIR_CAPS(g_object_new(VIR_TYPE_CAPS, NULL)); =20 caps->host.arch =3D hostarch; caps->host.offlineMigrate =3D offlineMigrate; @@ -225,9 +209,19 @@ virCapabilitiesClearSecModel(virCapsHostSecModelPtr se= cmodel) } =20 static void -virCapsDispose(void *object) +virCapsDispose(GObject *object) +{ + virCapsPtr caps =3D VIR_CAPS(object); + + g_clear_object(&caps->host.resctrl); + + G_OBJECT_CLASS(vir_caps_parent_class)->dispose(object); +} + +static void +virCapsFinalize(GObject *object) { - virCapsPtr caps =3D object; + virCapsPtr caps =3D VIR_CAPS(object); size_t i; =20 for (i =3D 0; i < caps->npools; i++) @@ -266,7 +260,22 @@ virCapsDispose(void *object) VIR_FREE(caps->host.netprefix); VIR_FREE(caps->host.pagesSize); virCPUDefFree(caps->host.cpu); - g_clear_object(&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 =3D G_OBJECT_CLASS(klass); + + obj->dispose =3D virCapsDispose; + obj->finalize =3D virCapsFinalize; } =20 /** 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 { =20 =20 struct _virCaps { - virObject parent; + GObject parent; =20 virCapsHost host; size_t nguests; @@ -212,8 +212,8 @@ struct _virCaps { virCapsStoragePoolPtr *pools; }; =20 -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); =20 struct _virCapsDomainData { int ostype; diff --git a/src/conf/storage_capabilities.c b/src/conf/storage_capabilitie= s.c index 1a3417f90b..a2f8063ecb 100644 --- a/src/conf/storage_capabilities.c +++ b/src/conf/storage_capabilities.c @@ -40,7 +40,7 @@ virStoragePoolCapsDispose(void *obj) virStoragePoolCapsPtr caps =3D obj; VIR_DEBUG("obj=3D%p", caps); =20 - virObjectUnref(caps->driverCaps); + g_clear_object(&caps->driverCaps); } =20 =20 @@ -66,7 +66,7 @@ virStoragePoolCapsNew(virCapsPtr driverCaps) if (!(caps =3D virObjectLockableNew(virStoragePoolCapsClass))) return NULL; =20 - caps->driverCaps =3D virObjectRef(driverCaps); + caps->driverCaps =3D g_object_ref(driverCaps); =20 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; =20 -typedef struct _virCaps virCaps; -typedef virCaps *virCapsPtr; +typedef struct _virCaps *virCapsPtr; =20 typedef struct _virCapsDomainData virCapsDomainData; typedef virCapsDomainData *virCapsDomainDataPtr; diff --git a/src/esx/esx_driver.c b/src/esx/esx_driver.c index 0ede65279a..39412f746a 100644 --- a/src/esx/esx_driver.c +++ b/src/esx/esx_driver.c @@ -69,7 +69,7 @@ esxFreePrivate(esxPrivate **priv) esxVI_Context_Free(&(*priv)->host); esxVI_Context_Free(&(*priv)->vCenter); esxUtil_FreeParsedUri(&(*priv)->parsedUri); - virObjectUnref((*priv)->caps); + g_clear_object(&(*priv)->caps); virObjectUnref((*priv)->xmlopt); VIR_FREE(*priv); } @@ -540,7 +540,7 @@ static virCapsPtr esxCapsInit(esxPrivate *priv) { esxVI_Boolean supportsLongMode =3D esxSupportsLongMode(priv); - virCapsPtr caps =3D NULL; + g_autoptr(virCaps) caps =3D NULL; virCapsGuestPtr guest =3D NULL; =20 if (supportsLongMode =3D=3D esxVI_Boolean_Undefined) @@ -552,14 +552,11 @@ esxCapsInit(esxPrivate *priv) caps =3D virCapabilitiesNew(VIR_ARCH_I686, true, true); } =20 - if (!caps) - return NULL; - virCapabilitiesAddHostMigrateTransport(caps, "vpxmigr"); =20 =20 if (esxLookupHostSystemBiosUuid(priv, caps->host.host_uuid) < 0) - goto failure; + return NULL; =20 /* i686 */ guest =3D virCapabilitiesAddGuest(caps, VIR_DOMAIN_OSTYPE_HVM, @@ -568,10 +565,10 @@ esxCapsInit(esxPrivate *priv) NULL); =20 if (!guest) - goto failure; + return NULL; =20 if (!virCapabilitiesAddGuestDomain(guest, VIR_DOMAIN_VIRT_VMWARE, NULL= , NULL, 0, NULL)) - goto failure; + return NULL; =20 /* x86_64 */ if (supportsLongMode =3D=3D esxVI_Boolean_True) { @@ -581,18 +578,13 @@ esxCapsInit(esxPrivate *priv) 0, NULL); =20 if (!guest) - goto failure; + return NULL; =20 if (!virCapabilitiesAddGuestDomain(guest, VIR_DOMAIN_VIRT_VMWARE, = NULL, NULL, 0, NULL)) - goto failure; + return NULL; } =20 - return caps; - - failure: - virObjectUnref(caps); - - return NULL; + return g_steal_pointer(&caps); } =20 =20 diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 7bba191b03..2cde3c9aa5 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -51,6 +51,7 @@ virDomainBackupDefParseString; =20 =20 # conf/capabilities.h +vir_caps_get_type; virCapabilitiesAddGuest; virCapabilitiesAddGuestDomain; virCapabilitiesAddGuestFeature; 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(virDomainCapsDeviceH= ostdevPtr dev) virCapsPtr libxlMakeCapabilities(libxl_ctx *ctx) { - virCapsPtr caps; + g_autoptr(virCaps) caps =3D NULL; =20 #ifdef LIBXL_HAVE_NO_SUSPEND_RESUME - if ((caps =3D virCapabilitiesNew(virArchFromHost(), false, false)) =3D= =3D NULL) + caps =3D virCapabilitiesNew(virArchFromHost(), false, false); #else - if ((caps =3D virCapabilitiesNew(virArchFromHost(), true, true)) =3D= =3D NULL) + caps =3D virCapabilitiesNew(virArchFromHost(), true, true); #endif - return NULL; =20 if (libxlCapsInitHost(ctx, caps) < 0) - goto error; + return NULL; =20 if (libxlCapsInitNuma(ctx, caps) < 0) - goto error; + return NULL; =20 if (libxlCapsInitGuests(ctx, caps) < 0) - goto error; - - return caps; + return NULL; =20 - error: - virObjectUnref(caps); - return NULL; + return g_steal_pointer(&caps); } =20 /* diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c index b3f67f817a..b7c119366e 100644 --- a/src/libxl/libxl_conf.c +++ b/src/libxl/libxl_conf.c @@ -70,7 +70,7 @@ libxlDriverConfigDispose(void *obj) { libxlDriverConfigPtr cfg =3D obj; =20 - virObjectUnref(cfg->caps); + g_clear_object(&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..6942781731 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 =3D NULL; virCapsGuestPtr guest; virArch altArch; char *lxc_path =3D NULL; =20 - if ((caps =3D virCapabilitiesNew(virArchFromHost(), - false, false)) =3D=3D NULL) - goto error; + caps =3D virCapabilitiesNew(virArchFromHost(), false, false); =20 /* Some machines have problematic NUMA topology causing * unexpected failures. We don't want to break the lxc @@ -164,11 +162,10 @@ virCapsPtr virLXCDriverCapsInit(virLXCDriverPtr drive= r) VIR_INFO("No driver, not initializing security driver"); } =20 - return caps; + return g_steal_pointer(&caps); =20 error: VIR_FREE(lxc_path); - virObjectUnref(caps); return NULL; } =20 @@ -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,7 @@ virCapsPtr virLXCDriverGetCapabilities(virLXCDriverPtr = driver, return NULL; =20 lxcDriverLock(driver); - virObjectUnref(driver->caps); + g_clear_object(&driver->caps); driver->caps =3D caps; } else { lxcDriverLock(driver); @@ -207,7 +204,7 @@ virCapsPtr virLXCDriverGetCapabilities(virLXCDriverPtr = driver, } } =20 - ret =3D virObjectRef(driver->caps); + ret =3D 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..43f75d639a 100644 --- a/src/lxc/lxc_controller.c +++ b/src/lxc/lxc_controller.c @@ -181,7 +181,7 @@ virLXCControllerDriverFree(virLXCDriverPtr driver) if (!driver) return; virObjectUnref(driver->xmlopt); - virObjectUnref(driver->caps); + g_clear_object(&driver->caps); virMutexDestroy(&driver->lock); g_free(driver); } diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c index 851894c459..0cce0d70b7 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) =20 static char *lxcConnectGetCapabilities(virConnectPtr conn) { virLXCDriverPtr driver =3D conn->privateData; - virCapsPtr caps; - char *xml; + g_autoptr(virCaps) caps =3D NULL; =20 if (virConnectGetCapabilitiesEnsureACL(conn) < 0) return NULL; @@ -206,10 +205,7 @@ static char *lxcConnectGetCapabilities(virConnectPtr c= onn) { if (!(caps =3D virLXCDriverGetCapabilities(driver, true))) return NULL; =20 - xml =3D virCapabilitiesFormatXML(caps); - - virObjectUnref(caps); - return xml; + return virCapabilitiesFormatXML(caps); } =20 =20 @@ -405,7 +401,7 @@ lxcDomainDefineXMLFlags(virConnectPtr conn, const char = *xml, unsigned int flags) virObjectEventPtr event =3D NULL; virDomainDefPtr oldDef =3D NULL; virLXCDriverConfigPtr cfg =3D virLXCDriverGetConfig(driver); - virCapsPtr caps =3D NULL; + g_autoptr(virCaps) caps =3D NULL; unsigned int parse_flags =3D VIR_DOMAIN_DEF_PARSE_INACTIVE; =20 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(virConnectPt= r conn, char *xml =3D NULL; virDomainDefPtr def =3D NULL; virLXCDriverPtr driver =3D conn->privateData; - virCapsPtr caps =3D virLXCDriverGetCapabilities(driver, false); + g_autoptr(virCaps) caps =3D virLXCDriverGetCapabilities(driver, false); =20 virCheckFlags(0, NULL); =20 @@ -959,7 +954,6 @@ static char *lxcConnectDomainXMLFromNative(virConnectPt= r conn, xml =3D virDomainDefFormat(def, driver->xmlopt, 0); =20 cleanup: - virObjectUnref(caps); virDomainDefFree(def); return xml; } @@ -1086,7 +1080,7 @@ lxcDomainCreateXMLWithFiles(virConnectPtr conn, virDomainPtr dom =3D NULL; virObjectEventPtr event =3D NULL; virLXCDriverConfigPtr cfg =3D virLXCDriverGetConfig(driver); - virCapsPtr caps =3D NULL; + g_autoptr(virCaps) caps =3D NULL; unsigned int parse_flags =3D VIR_DOMAIN_DEF_PARSE_INACTIVE; =20 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 co= nn, virSecurityModelPtr secmodel) { virLXCDriverPtr driver =3D conn->privateData; - virCapsPtr caps =3D NULL; - int ret =3D 0; + g_autoptr(virCaps) caps =3D NULL; =20 memset(secmodel, 0, sizeof(*secmodel)); =20 if (virNodeGetSecurityModelEnsureACL(conn) < 0) - goto cleanup; + return 0; =20 if (!(caps =3D virLXCDriverGetCapabilities(driver, false))) - goto cleanup; + return 0; =20 /* we treat no driver as success, but simply return no data in *secmod= el */ if (caps->host.nsecModels =3D=3D 0 || caps->host.secModels[0].model =3D=3D NULL) - goto cleanup; + return 0; =20 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 =3D -1; - goto cleanup; + return -1; } =20 if (virStrcpy(secmodel->doi, caps->host.secModels[0].doi, @@ -1265,13 +1256,10 @@ static int lxcNodeGetSecurityModel(virConnectPtr co= nn, virReportError(VIR_ERR_INTERNAL_ERROR, _("security DOI string exceeds max %d bytes"), VIR_SECURITY_DOI_BUFLEN-1); - ret =3D -1; - goto cleanup; + return -1; } =20 - cleanup: - virObjectUnref(caps); - return ret; + return 0; } =20 =20 @@ -1623,7 +1611,7 @@ static int lxcStateCleanup(void) virSysinfoDefFree(lxc_driver->hostsysinfo); =20 virObjectUnref(lxc_driver->hostdevMgr); - virObjectUnref(lxc_driver->caps); + g_clear_object(&lxc_driver->caps); virObjectUnref(lxc_driver->securityManager); virObjectUnref(lxc_driver->xmlopt); =20 @@ -1802,7 +1790,7 @@ lxcDomainSetSchedulerParametersFlags(virDomainPtr dom, unsigned int flags) { virLXCDriverPtr driver =3D dom->conn->privateData; - virCapsPtr caps =3D NULL; + g_autoptr(virCaps) caps =3D NULL; size_t i; virDomainObjPtr vm =3D NULL; virDomainDefPtr def =3D NULL; @@ -1924,7 +1912,6 @@ lxcDomainSetSchedulerParametersFlags(virDomainPtr dom, cleanup: virDomainDefFree(persistentDefCopy); virDomainObjEndAPI(&vm); - virObjectUnref(caps); virObjectUnref(cfg); return ret; } @@ -4477,7 +4464,7 @@ static int lxcDomainDetachDeviceFlags(virDomainPtr do= m, unsigned int flags) { virLXCDriverPtr driver =3D dom->conn->privateData; - virCapsPtr caps =3D NULL; + g_autoptr(virCaps) caps =3D NULL; virDomainObjPtr vm =3D NULL; virDomainDefPtr vmdef =3D NULL; virDomainDeviceDefPtr dev =3D NULL, dev_copy =3D NULL; @@ -4563,7 +4550,6 @@ static int lxcDomainDetachDeviceFlags(virDomainPtr do= m, 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..6a3c9b7da3 100644 --- a/src/lxc/lxc_process.c +++ b/src/lxc/lxc_process.c @@ -1565,7 +1565,7 @@ int virLXCProcessStart(virConnectPtr conn, VIR_FREE(pidfile); VIR_FREE(logfile); virObjectUnref(cfg); - virObjectUnref(caps); + g_clear_object(&caps); =20 virErrorRestore(&err); =20 diff --git a/src/openvz/openvz_conf.c b/src/openvz/openvz_conf.c index 78547b8b28..0d11d71dfd 100644 --- a/src/openvz/openvz_conf.c +++ b/src/openvz/openvz_conf.c @@ -151,9 +151,7 @@ virCapsPtr openvzCapsInit(void) g_autoptr(virCaps) caps =3D NULL; virCapsGuestPtr guest; =20 - if ((caps =3D virCapabilitiesNew(virArchFromHost(), - false, false)) =3D=3D NULL) - return NULL; + caps =3D virCapabilitiesNew(virArchFromHost(), false, false); =20 if (!(caps->host.numa =3D virCapabilitiesHostNUMANewHost())) return NULL; @@ -483,7 +481,7 @@ openvzFreeDriver(struct openvz_driver *driver) =20 virObjectUnref(driver->xmlopt); virObjectUnref(driver->domains); - virObjectUnref(driver->caps); + g_clear_object(&driver->caps); VIR_FREE(driver); } =20 diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index fe311048d4..840373bae9 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -1067,13 +1067,11 @@ virQEMUCapsProbeHostCPU(virArch hostArch, virCapsPtr virQEMUCapsInit(virFileCachePtr cache) { - virCapsPtr caps; + g_autoptr(virCaps) caps =3D NULL; size_t i; virArch hostarch =3D virArchFromHost(); =20 - if ((caps =3D virCapabilitiesNew(hostarch, - true, true)) =3D=3D NULL) - goto error; + caps =3D virCapabilitiesNew(hostarch, true, true); =20 if (virCapabilitiesInitCaches(caps) < 0) VIR_WARN("Failed to get host CPU cache info"); @@ -1101,13 +1099,9 @@ virQEMUCapsInit(virFileCachePtr cache) if (virQEMUCapsInitGuest(caps, cache, hostarch, i) < 0) - goto error; - - return caps; + return NULL; =20 - error: - virObjectUnref(caps); - return NULL; + return g_steal_pointer(&caps); } =20 =20 diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c index c59824006c..c29b543b16 100644 --- a/src/qemu/qemu_conf.c +++ b/src/qemu/qemu_conf.c @@ -1354,7 +1354,7 @@ virCapsPtr virQEMUDriverCreateCapabilities(virQEMUDri= verPtr 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 */ @@ -1368,7 +1368,7 @@ virCapsPtr virQEMUDriverGetCapabilities(virQEMUDriver= Ptr driver, return NULL; =20 qemuDriverLock(driver); - virObjectUnref(driver->caps); + g_clear_object(&driver->caps); driver->caps =3D caps; } else { qemuDriverLock(driver); @@ -1382,7 +1382,7 @@ virCapsPtr virQEMUDriverGetCapabilities(virQEMUDriver= Ptr driver, } } =20 - ret =3D virObjectRef(driver->caps); + ret =3D g_object_ref(driver->caps); qemuDriverUnlock(driver); return ret; } diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index dfe0adaad8..bf0a817ff1 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -1124,7 +1124,7 @@ qemuStateCleanup(void) virObjectUnref(qemu_driver->xmlopt); virCPUDefFree(qemu_driver->hostcpu); virCapabilitiesHostNUMAUnref(qemu_driver->hostnuma); - virObjectUnref(qemu_driver->caps); + g_clear_object(&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..02c0dc7fbc 100644 --- a/src/security/virt-aa-helper.c +++ b/src/security/virt-aa-helper.c @@ -79,7 +79,7 @@ vahDeinit(vahControl * ctl) return -1; =20 VIR_FREE(ctl->def); - virObjectUnref(ctl->caps); + g_clear_object(&ctl->caps); virObjectUnref(ctl->xmlopt); VIR_FREE(ctl->files); VIR_FREE(ctl->virtType); @@ -632,10 +632,7 @@ get_definition(vahControl * ctl, const char *xmlStr) if (caps_mockup(ctl, xmlStr) !=3D 0) return -1; =20 - if ((ctl->caps =3D virCapabilitiesNew(ctl->arch, true, true)) =3D=3D N= ULL) { - vah_error(ctl, 0, _("could not allocate memory")); - return -1; - } + ctl->caps =3D virCapabilitiesNew(ctl->arch, true, true); =20 if (!(ctl->xmlopt =3D virDomainXMLOptionNew(&virAAHelperDomainDefParse= rConfig, 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; =20 - if (!(caps =3D virCapabilitiesNew(VIR_ARCH_NONE, false, false))) - return NULL; + caps =3D virCapabilitiesNew(VIR_ARCH_NONE, false, false); =20 for (i =3D 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..00ee8f7c59 100644 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -158,7 +158,7 @@ testDriverDispose(void *obj) testDriverPtr driver =3D obj; size_t i; =20 - virObjectUnref(driver->caps); + g_clear_object(&driver->caps); virObjectUnref(driver->xmlopt); virObjectUnref(driver->domains); virNodeDeviceObjListFree(driver->devs); @@ -284,24 +284,23 @@ static virCapsPtr testBuildCapabilities(virConnectPtr conn) { testDriverPtr privconn =3D conn->privateData; - virCapsPtr caps; + g_autoptr(virCaps) caps =3D NULL; virCapsGuestPtr guest; int guest_types[] =3D { VIR_DOMAIN_OSTYPE_HVM, VIR_DOMAIN_OSTYPE_XEN }; size_t i, j; =20 - if ((caps =3D virCapabilitiesNew(VIR_ARCH_I686, false, false)) =3D=3D = NULL) - goto error; + caps =3D virCapabilitiesNew(VIR_ARCH_I686, false, false); =20 if (virCapabilitiesAddHostFeature(caps, "pae") < 0) - goto error; + return NULL; if (virCapabilitiesAddHostFeature(caps, "nonpae") < 0) - goto error; + return NULL; =20 virCapabilitiesHostInitIOMMU(caps); =20 if (VIR_ALLOC_N(caps->host.pagesSize, 4) < 0) - goto error; + return NULL; =20 caps->host.pagesSize[caps->host.nPagesSize++] =3D 4; caps->host.pagesSize[caps->host.nPagesSize++] =3D 8; @@ -317,7 +316,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; } =20 memcpy(cpu_cells, privconn->cells[i].cpus, @@ -347,7 +346,7 @@ testBuildCapabilities(virConnectPtr conn) NULL, 0, NULL)) =3D=3D NULL) - goto error; + return NULL; =20 if (virCapabilitiesAddGuestDomain(guest, VIR_DOMAIN_VIRT_TEST, @@ -355,7 +354,7 @@ testBuildCapabilities(virConnectPtr conn) NULL, 0, NULL) =3D=3D NULL) - goto error; + return NULL; =20 virCapabilitiesAddGuestFeature(guest, VIR_CAPS_GUEST_FEATURE_TYPE_= PAE); virCapabilitiesAddGuestFeature(guest, VIR_CAPS_GUEST_FEATURE_TYPE_= NONPAE); @@ -363,16 +362,12 @@ testBuildCapabilities(virConnectPtr conn) =20 caps->host.nsecModels =3D 1; if (VIR_ALLOC_N(caps->host.secModels, caps->host.nsecModels) < 0) - goto error; + return NULL; caps->host.secModels[0].model =3D g_strdup("testSecurity"); =20 caps->host.secModels[0].doi =3D g_strdup(""); =20 - return caps; - - error: - virObjectUnref(caps); - return NULL; + return g_steal_pointer(&caps); } =20 =20 diff --git a/src/vbox/vbox_common.c b/src/vbox/vbox_common.c index e98ae04ec0..febf843cd5 100644 --- a/src/vbox/vbox_common.c +++ b/src/vbox/vbox_common.c @@ -89,9 +89,7 @@ vboxCapsInit(void) g_autoptr(virCaps) caps =3D NULL; virCapsGuestPtr guest =3D NULL; =20 - if ((caps =3D virCapabilitiesNew(virArchFromHost(), - false, false)) =3D=3D NULL) - return NULL; + caps =3D virCapabilitiesNew(virArchFromHost(), false, false); =20 if (!(caps->host.numa =3D virCapabilitiesHostNUMANewHost())) return NULL; @@ -124,7 +122,7 @@ vboxDriverDispose(void *obj) { vboxDriverPtr driver =3D obj; =20 - virObjectUnref(driver->caps); + g_clear_object(&driver->caps); virObjectUnref(driver->xmlopt); } =20 diff --git a/src/vmware/vmware_conf.c b/src/vmware/vmware_conf.c index fd62bb96f7..c8115ede3c 100644 --- a/src/vmware/vmware_conf.c +++ b/src/vmware/vmware_conf.c @@ -54,7 +54,7 @@ vmwareFreeDriver(struct vmware_driver *driver) =20 virMutexDestroy(&driver->lock); virObjectUnref(driver->domains); - virObjectUnref(driver->caps); + g_clear_object(&driver->caps); virObjectUnref(driver->xmlopt); VIR_FREE(driver->vmrun); VIR_FREE(driver); @@ -64,12 +64,10 @@ vmwareFreeDriver(struct vmware_driver *driver) virCapsPtr vmwareCapsInit(void) { - virCapsPtr caps =3D NULL; + g_autoptr(virCaps) caps =3D NULL; virCapsGuestPtr guest =3D NULL; =20 - if ((caps =3D virCapabilitiesNew(virArchFromHost(), - false, false)) =3D=3D NULL) - goto error; + caps =3D virCapabilitiesNew(virArchFromHost(), false, false); =20 if (!(caps->host.numa =3D virCapabilitiesHostNUMANewHost())) goto error; @@ -116,11 +114,10 @@ vmwareCapsInit(void) guest =3D NULL; } =20 - return caps; + return g_steal_pointer(&caps); =20 error: virCapabilitiesFreeGuest(guest); - virObjectUnref(caps); return NULL; } =20 diff --git a/src/vz/vz_driver.c b/src/vz/vz_driver.c index d882b91def..85dac9a682 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 =3D NULL; + g_autoptr(virCaps) caps =3D NULL; virNodeInfo nodeinfo; virDomainOSType ostypes[] =3D { VIR_DOMAIN_OSTYPE_HVM, @@ -112,15 +112,13 @@ vzBuildCapabilities(void) }; size_t i, j, k; =20 - if ((caps =3D virCapabilitiesNew(virArchFromHost(), - false, false)) =3D=3D NULL) - return NULL; + caps =3D virCapabilitiesNew(virArchFromHost(), false, false); =20 if (!(caps->host.numa =3D virCapabilitiesHostNUMANewHost())) - goto error; + return NULL; =20 if (virCapabilitiesInitCaches(caps) < 0) - goto error; + return NULL; =20 G_STATIC_ASSERT(G_N_ELEMENTS(archs) =3D=3D G_N_ELEMENTS(emulators)); =20 @@ -129,23 +127,19 @@ vzBuildCapabilities(void) for (k =3D 0; k < G_N_ELEMENTS(emulators); k++) if (vzCapsAddGuestDomain(caps, ostypes[i], archs[j], emulators[k], virt_types[k]) < 0) - goto error; + return NULL; =20 if (virCapabilitiesGetNodeInfo(&nodeinfo)) - goto error; + return NULL; =20 if (!(caps->host.cpu =3D virCPUGetHost(caps->host.arch, VIR_CPU_TYPE_H= OST, &nodeinfo, NULL))) - goto error; + return NULL; =20 if (virCapabilitiesAddHostMigrateTransport(caps, "vzmigr") < 0) - goto error; - - return caps; + return NULL; =20 - error: - virObjectUnref(caps); - return NULL; + return g_steal_pointer(&caps); } =20 static void vzDriverDispose(void * obj) @@ -154,7 +148,7 @@ static void vzDriverDispose(void * obj) =20 prlsdkDisconnect(driver); virObjectUnref(driver->domains); - virObjectUnref(driver->caps); + g_clear_object(&driver->caps); virObjectUnref(driver->xmlopt); virObjectUnref(driver->domainEventState); virSysinfoDefFree(driver->hostsysinfo); diff --git a/tests/bhyveargv2xmltest.c b/tests/bhyveargv2xmltest.c index 735cc4b338..3150c4583f 100644 --- a/tests/bhyveargv2xmltest.c +++ b/tests/bhyveargv2xmltest.c @@ -195,7 +195,7 @@ mymain(void) DO_TEST("bhyveload-bootorder"); DO_TEST_FAIL("extraargs"); =20 - virObjectUnref(driver.caps); + g_clear_object(&driver.caps); virObjectUnref(driver.xmlopt); =20 return ret =3D=3D 0 ? EXIT_SUCCESS : EXIT_FAILURE; diff --git a/tests/bhyvexml2argvtest.c b/tests/bhyvexml2argvtest.c index 9e7eb218b8..0429394246 100644 --- a/tests/bhyvexml2argvtest.c +++ b/tests/bhyvexml2argvtest.c @@ -249,7 +249,7 @@ mymain(void) driver.bhyvecaps &=3D ~BHYVE_CAP_CPUTOPOLOGY; DO_TEST_FAILURE("cputopology"); =20 - virObjectUnref(driver.caps); + g_clear_object(&driver.caps); virObjectUnref(driver.xmlopt); virPortAllocatorRangeFree(driver.remotePorts); =20 diff --git a/tests/bhyvexml2xmltest.c b/tests/bhyvexml2xmltest.c index a0c20a14c1..27b9abb204 100644 --- a/tests/bhyvexml2xmltest.c +++ b/tests/bhyvexml2xmltest.c @@ -127,7 +127,7 @@ mymain(void) /* USB xhci tablet */ DO_TEST_DIFFERENT("input-xhci-tablet"); =20 - virObjectUnref(driver.caps); + g_clear_object(&driver.caps); virObjectUnref(driver.xmlopt); =20 return ret =3D=3D 0 ? EXIT_SUCCESS : EXIT_FAILURE; diff --git a/tests/domainconftest.c b/tests/domainconftest.c index 754ef2eb3d..54fdd72c25 100644 --- a/tests/domainconftest.c +++ b/tests/domainconftest.c @@ -103,7 +103,7 @@ mymain(void) DO_TEST_GET_FS("/dev/pts", false); DO_TEST_GET_FS("/doesnotexist", false); =20 - virObjectUnref(caps); + g_clear_object(&caps); virObjectUnref(xmlopt); =20 cleanup: diff --git a/tests/genericxml2xmltest.c b/tests/genericxml2xmltest.c index 74e520522b..a92f5dc613 100644 --- a/tests/genericxml2xmltest.c +++ b/tests/genericxml2xmltest.c @@ -198,7 +198,7 @@ mymain(void) DO_TEST_BACKUP("backup-push-encrypted"); =20 =20 - virObjectUnref(caps); + g_clear_object(&caps); virObjectUnref(xmlopt); =20 return ret =3D=3D 0 ? EXIT_SUCCESS : EXIT_FAILURE; diff --git a/tests/openvzutilstest.c b/tests/openvzutilstest.c index 2b1a9fb5ce..124f17c3ce 100644 --- a/tests/openvzutilstest.c +++ b/tests/openvzutilstest.c @@ -132,7 +132,7 @@ testReadNetworkConf(const void *data G_GNUC_UNUSED) =20 cleanup: virObjectUnref(driver.xmlopt); - virObjectUnref(driver.caps); + g_clear_object(&driver.caps); VIR_FREE(actual); virDomainDefFree(def); =20 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 =3D NULL; - virCapsPtr caps =3D NULL; + g_autoptr(virCaps) caps =3D NULL; virArch arch =3D virArchFromString(data->archName); g_autofree char *binary =3D NULL; =20 @@ -110,10 +110,7 @@ testGetCaps(char *capsData, const testQemuData *data) goto error; } =20 - if ((caps =3D virCapabilitiesNew(arch, false, false)) =3D=3D NULL) { - fprintf(stderr, "failed to create the fake capabilities"); - goto error; - } + caps =3D virCapabilitiesNew(arch, false, false); =20 if (virQEMUCapsInitGuestFromBinary(caps, binary, @@ -124,11 +121,10 @@ testGetCaps(char *capsData, const testQemuData *data) } =20 virObjectUnref(qemuCaps); - return caps; + return g_steal_pointer(&caps); =20 error: virObjectUnref(qemuCaps); - virObjectUnref(caps); return NULL; } =20 @@ -140,7 +136,7 @@ testQemuCapsXML(const void *opaque) char *capsFile =3D NULL, *xmlFile =3D NULL; char *capsData =3D NULL; char *capsXml =3D NULL; - virCapsPtr capsProvided =3D NULL; + g_autoptr(virCaps) capsProvided =3D NULL; =20 xmlFile =3D g_strdup_printf("%s/caps.%s.xml", data->outputDir, data->a= rchName); =20 @@ -167,7 +163,6 @@ testQemuCapsXML(const void *opaque) VIR_FREE(capsFile); VIR_FREE(capsXml); VIR_FREE(capsData); - virObjectUnref(capsProvided); return ret; } =20 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 =3D 0; virDomainObjPtr vm =3D NULL; virDomainDeviceDefPtr dev =3D NULL; - virCapsPtr caps =3D NULL; + g_autoptr(virCaps) caps =3D NULL; qemuMonitorTestPtr test_mon =3D NULL; qemuDomainObjPrivatePtr priv =3D NULL; =20 @@ -356,7 +356,6 @@ testQemuHotplug(const void *data) test->vm =3D 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 =3D NULL; - virCapsPtr caps =3D NULL; + g_autoptr(virCaps) caps =3D NULL; char *prefix =3D NULL; struct testQemuHotplugCpuData *data =3D NULL; =20 @@ -464,7 +463,6 @@ testQemuHotplugCpuPrepare(const char *test, return data; =20 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 =3D NULL; virCapsGuestPtr guest; =20 - if ((caps =3D virCapabilitiesNew(VIR_ARCH_X86_64, - false, false)) =3D=3D NULL) - return NULL; + caps =3D virCapabilitiesNew(VIR_ARCH_X86_64, false, false); =20 if ((guest =3D virCapabilitiesAddGuest(caps, VIR_DOMAIN_OSTYPE_HVM, VI= R_ARCH_I686, "/usr/bin/acme-virt", NULL, diff --git a/tests/testutilslxc.c b/tests/testutilslxc.c index b5e2f542e7..bffc3ba440 100644 --- a/tests/testutilslxc.c +++ b/tests/testutilslxc.c @@ -11,7 +11,7 @@ virCapsPtr testLXCCapsInit(void) { - virCapsPtr caps; + g_autoptr(virCaps) caps =3D NULL; virCapsGuestPtr guest; =20 if ((caps =3D virCapabilitiesNew(VIR_ARCH_X86_64, @@ -22,20 +22,20 @@ testLXCCapsInit(void) VIR_ARCH_I686, "/usr/libexec/libvirt_lxc", NULL, 0, NULL)) =3D=3D NULL) - goto error; + return NULL; =20 if (!virCapabilitiesAddGuestDomain(guest, VIR_DOMAIN_VIRT_LXC, NULL, N= ULL, 0, NULL)) - goto error; + return NULL; =20 =20 if ((guest =3D virCapabilitiesAddGuest(caps, VIR_DOMAIN_OSTYPE_EXE, VIR_ARCH_X86_64, "/usr/libexec/libvirt_lxc", NULL, 0, NULL)) =3D=3D NULL) - goto error; + return NULL; =20 if (!virCapabilitiesAddGuestDomain(guest, VIR_DOMAIN_VIRT_LXC, NULL, N= ULL, 0, NULL)) - goto error; + return NULL; =20 =20 if (virTestGetDebug()) { @@ -43,18 +43,14 @@ testLXCCapsInit(void) =20 caps_str =3D virCapabilitiesFormatXML(caps); if (!caps_str) - goto error; + return NULL; =20 VIR_TEST_DEBUG("LXC driver capabilities:\n%s", caps_str); =20 VIR_FREE(caps_str); } =20 - return caps; - - error: - virObjectUnref(caps); - return NULL; + return g_steal_pointer(&caps); } =20 =20 @@ -81,7 +77,7 @@ void testLXCDriverFree(virLXCDriverPtr driver) { virObjectUnref(driver->xmlopt); - virObjectUnref(driver->caps); + g_clear_object(&driver->caps); virMutexDestroy(&driver->lock); g_free(driver); } diff --git a/tests/testutilsqemu.c b/tests/testutilsqemu.c index cb68ac0488..73a92a2830 100644 --- a/tests/testutilsqemu.c +++ b/tests/testutilsqemu.c @@ -196,11 +196,10 @@ testQemuAddGuest(virCapsPtr caps, =20 virCapsPtr testQemuCapsInit(void) { - virCapsPtr caps; + g_autoptr(virCaps) caps =3D NULL; size_t i; =20 - if (!(caps =3D virCapabilitiesNew(VIR_ARCH_X86_64, false, false))) - return NULL; + caps =3D virCapabilitiesNew(VIR_ARCH_X86_64, false, false); =20 /* Add dummy 'none' security_driver. This is equal to setting * security_driver =3D "none" in qemu.conf. */ @@ -231,11 +230,10 @@ virCapsPtr testQemuCapsInit(void) VIR_FREE(caps_str); } =20 - return caps; + return g_steal_pointer(&caps); =20 cleanup: caps->host.cpu =3D NULL; - virObjectUnref(caps); return NULL; } =20 @@ -314,7 +312,7 @@ void qemuTestDriverFree(virQEMUDriver *driver) } virObjectUnref(driver->qemuCapsCache); virObjectUnref(driver->xmlopt); - virObjectUnref(driver->caps); + g_clear_object(&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 =3D NULL; virCapsGuestPtr guest; virCapsGuestMachinePtr *machines; int nmachines; @@ -78,7 +78,6 @@ testXLInitCaps(void) =20 cleanup: virCapabilitiesFreeMachines(machines, nmachines); - virObjectUnref(caps); return NULL; } =20 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 =3D (struct virCapabilitiesData *) op= aque; const char *archStr =3D virArchToString(data->arch); - virCapsPtr caps =3D NULL; + g_autoptr(virCaps) caps =3D NULL; char *capsXML =3D NULL; char *path =3D NULL; char *system =3D NULL; @@ -55,9 +55,6 @@ test_virCapabilities(const void *opaque) virFileWrapperAddPrefix("/sys/fs/resctrl", resctrl); caps =3D virCapabilitiesNew(data->arch, data->offlineMigrate, data->li= veMigrate); =20 - if (!caps) - goto cleanup; - if (!(caps->host.numa =3D virCapabilitiesHostNUMANewHost())) goto cleanup; =20 @@ -82,7 +79,6 @@ test_virCapabilities(const void *opaque) VIR_FREE(resctrl); VIR_FREE(path); VIR_FREE(capsXML); - virObjectUnref(caps); return ret; } =20 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 =3D 0; - virCapsPtr caps =3D NULL; + g_autoptr(virCaps) caps =3D NULL; =20 if (!(caps =3D testQemuCapsInit())) { - ret =3D -1; - goto out; + return -1; } =20 /* Checking each parameter individually */ @@ -199,8 +198,6 @@ test_virCapsDomainDataLookupQEMU(const void *data G_GNU= C_UNUSED) "/usr/bin/qemu-system-aarch64", "pc"); CAPS_EXPECT_ERR(-1, VIR_ARCH_NONE, VIR_DOMAIN_VIRT_VMWARE, NULL, "pc"); =20 - out: - virObjectUnref(caps); return ret; } #endif /* WITH_QEMU */ @@ -210,11 +207,10 @@ static int test_virCapsDomainDataLookupLXC(const void *data G_GNUC_UNUSED) { int ret =3D 0; - virCapsPtr caps =3D NULL; + g_autoptr(virCaps) caps =3D NULL; =20 if (!(caps =3D testLXCCapsInit())) { - ret =3D -1; - goto out; + return -1; } =20 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); =20 - 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 =3D NULL; char *schemata_str =3D NULL; char *schemata_file; - virCapsPtr caps =3D NULL; + g_autoptr(virCaps) caps =3D NULL; =20 system_dir =3D g_strdup_printf("%s/vircaps2xmldata/linux-%s/system", a= bs_srcdir, data->filename); @@ -65,7 +65,6 @@ test_virResctrlGetUnused(const void *opaque) =20 ret =3D 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..613331cabc 100644 --- a/tests/vmx2xmltest.c +++ b/tests/vmx2xmltest.c @@ -25,9 +25,6 @@ testCapsInit(void) =20 caps =3D virCapabilitiesNew(VIR_ARCH_I686, true, true); =20 - if (caps =3D=3D NULL) - return; - virCapabilitiesAddHostMigrateTransport(caps, "vpxmigr"); =20 /* i686 guest */ @@ -61,8 +58,7 @@ testCapsInit(void) return; =20 failure: - virObjectUnref(caps); - caps =3D NULL; + g_clear_object(&caps); } =20 static int @@ -285,7 +281,7 @@ mymain(void) =20 DO_TEST("datacenterpath", "datacenterpath"); =20 - virObjectUnref(caps); + g_clear_object(&caps); virObjectUnref(xmlopt); =20 return ret =3D=3D 0 ? EXIT_SUCCESS : EXIT_FAILURE; diff --git a/tests/xml2vmxtest.c b/tests/xml2vmxtest.c index 8f0a2a72a4..5d5fb8e69a 100644 --- a/tests/xml2vmxtest.c +++ b/tests/xml2vmxtest.c @@ -25,9 +25,6 @@ testCapsInit(void) =20 caps =3D virCapabilitiesNew(VIR_ARCH_I686, true, true); =20 - if (caps =3D=3D NULL) - return; - virCapabilitiesAddHostMigrateTransport(caps, "esx"); =20 =20 @@ -62,9 +59,8 @@ testCapsInit(void) return; =20 failure: - virObjectUnref(caps); + g_clear_object(&caps); virObjectUnref(xmlopt); - caps =3D NULL; } =20 static int @@ -294,7 +290,7 @@ mymain(void) =20 DO_TEST("datacenterpath", "datacenterpath", 4); =20 - virObjectUnref(caps); + g_clear_object(&caps); virObjectUnref(xmlopt); =20 return result =3D=3D 0 ? EXIT_SUCCESS : EXIT_FAILURE; --=20 2.25.3