From nobody Mon Feb 9 18:21:36 2026 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=1585927037; cv=none; d=zohomail.com; s=zohoarc; b=FGINxyViCAwlE1okge62zo8wWPU7+GBwUZYfmVX91EWO/HVxpQsh5HIeLM2kzmAQOS0LBsWnU/ZtH+gcnuNugjweZmrEGVxSHyIFbAU5tVhiYTQRXK8qrcMN4IZoRhwXcNId3jXhISc2jqTgBO/ZpDa0TlqlhCY1B/j4Yq3rl18= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1585927037; 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=6Qzr7QgBMVo5I5AT1MdI1g5M8fYXZ795Uj8oC0m4mbA=; b=ZP3y4pTk91A3LFC6IdFJyQAWoCyxD/n3EGryv9HOx7x0R61F/7w+uTgCEyB9i2jaPMluXdH2GXxsWeFysbPv+vOFPiUYbXzXcV2lWdDJcszfYlgRz0mep7Q0eojLKpgKLRQ4RIKl2VoLbUBhIAJ7ANsBi5SsFeDpKqtLrRddSl0= 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-1.mimecast.com [207.211.31.81]) by mx.zohomail.com with SMTPS id 158592703786289.17178906722233; Fri, 3 Apr 2020 08:17:17 -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-199-z4344ZrlO2q1UsPklxfGsQ-1; Fri, 03 Apr 2020 11:17:11 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 429411085932; Fri, 3 Apr 2020 15:17:03 +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 138C55DA2C; Fri, 3 Apr 2020 15:17:03 +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 B3C8A18034FA; Fri, 3 Apr 2020 15:17:02 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 033FGlF9028250 for ; Fri, 3 Apr 2020 11:16:47 -0400 Received: by smtp.corp.redhat.com (Postfix) id 547FB13CCA2; Fri, 3 Apr 2020 15:16:47 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast01.extmail.prod.ext.rdu2.redhat.com [10.11.55.17]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 4F71113CCA8 for ; Fri, 3 Apr 2020 15:16:47 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-2.mimecast.com [207.211.31.81]) (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 314E780030D for ; Fri, 3 Apr 2020 15:16:47 +0000 (UTC) Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-45-ajRNskZwMUe7v_MfsEwujQ-1; Fri, 03 Apr 2020 11:16:45 -0400 Received: by mail-wm1-f41.google.com with SMTP id c195so2348536wme.1 for ; Fri, 03 Apr 2020 08:16:44 -0700 (PDT) Received: from localhost.localdomain (public-gprs375156.centertel.pl. [37.47.96.181]) by smtp.gmail.com with ESMTPSA id p13sm12331045wru.3.2020.04.03.08.16.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Apr 2020 08:16:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1585927036; 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=6Qzr7QgBMVo5I5AT1MdI1g5M8fYXZ795Uj8oC0m4mbA=; b=PYnR7GhEg3HQmqTvQUwxQtwJ8/euXMCL0Oh9YubFVvxWzv67bVGpRapyVNW1hQWrqYcLll IrqM2zPo09lfHJajaoj9Aq0tWUWKJuRGOP5qF+rEzX2gk/PpWF0fsCAJSrm8kr+xF9hX6m RFmMt912VwRSjPokRYEvhZxTI1ApgKE= X-MC-Unique: z4344ZrlO2q1UsPklxfGsQ-1 X-MC-Unique: ajRNskZwMUe7v_MfsEwujQ-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=bb+GG3wJnlrBNKNmUDs0YNpC4D6K6P2D8H7wiciNk7s=; b=eQUmT04G1BF6QF/TrXkhii+LbbEdLhHH9izuzhW6c90r7juT+MWd+EqZ85Q4koAcWb rUI6e/ZXT6Y5SR59w+n8QFCtYMJulVotSJrn6hgjuSw//xufVQ6QQZWisHVMc+Og24vV rtGztiPDpY6pOHbSOISls4/IJ/kFAgT54k/LLPiC5GI92PA8PSvEq/VnnOpubL9P50ZW +YvmKtNndNNWkp2rSSUeP+VTYRM8MRJKDPTv4EFGjqSgwEttHNQWIJoQprY9kb2UzPYi 2Q5TxO1zGLFE4YbSUphRaiE71pjw6TgkgXvyuFsDswKrljebKRmUXdqZYzHpQyYNueKR /9+A== X-Gm-Message-State: AGi0PuaQrqFhz/UgHRoZ07gr9YyqA3njZTiGavY9Xocz5tBzfaXhiwVQ fRX/S3dymUAjJpPYfSR4vif3Xpp2bJM= X-Google-Smtp-Source: APiQypKyIo22Fol9nNVmfYEcPszRDackzFC9FkBREuMN18PB7S1iGEhv/hnTjcQtnC2hxiuPZqFViw== X-Received: by 2002:a1c:7919:: with SMTP id l25mr9633521wme.12.1585927003129; Fri, 03 Apr 2020 08:16:43 -0700 (PDT) From: Rafael Fonseca To: libvir-list@redhat.com Subject: [PATCH 18/36] datatypes: convert virNWFilterBinding to GObject Date: Fri, 3 Apr 2020 17:15:46 +0200 Message-Id: <20200403151604.106616-19-r4f4rfs@gmail.com> In-Reply-To: <20200403151604.106616-1-r4f4rfs@gmail.com> References: <20200403151604.106616-1-r4f4rfs@gmail.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.11.54.5 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id 033FGlF9028250 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.79 on 10.5.11.14 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/conf/virnwfilterbindingobjlist.c | 6 +++- src/datatypes.c | 44 +++++++++++++++++----------- src/datatypes.h | 14 ++++++--- src/libvirt-nwfilter.c | 7 ++--- src/nwfilter/nwfilter_driver.c | 3 +- 5 files changed, 46 insertions(+), 28 deletions(-) diff --git a/src/conf/virnwfilterbindingobjlist.c b/src/conf/virnwfilterbin= dingobjlist.c index 97e4d3c49b..110403bfcc 100644 --- a/src/conf/virnwfilterbindingobjlist.c +++ b/src/conf/virnwfilterbindingobjlist.c @@ -489,7 +489,11 @@ virNWFilterBindingObjListExport(virNWFilterBindingObjL= istPtr bindings, cleanup: virObjectListFreeCount(bindingobjs, nbindings); if (ret < 0) { - virObjectListFreeCount(*bindinglist, nbindings); + for (i =3D 0; i < nbindings; i++) { + if ((*bindinglist)[i]) + g_object_unref((*bindinglist)[i]); + } + VIR_FREE(*bindinglist); *bindinglist =3D NULL; } return ret; diff --git a/src/datatypes.c b/src/datatypes.c index d4f60db2be..b9879cfb9e 100644 --- a/src/datatypes.c +++ b/src/datatypes.c @@ -40,7 +40,6 @@ virClassPtr virInterfaceClass; virClassPtr virNetworkClass; virClassPtr virNetworkPortClass; virClassPtr virNodeDeviceClass; -virClassPtr virNWFilterBindingClass; virClassPtr virSecretClass; virClassPtr virStreamClass; virClassPtr virStorageVolClass; @@ -53,7 +52,6 @@ static void virInterfaceDispose(void *obj); static void virNetworkDispose(void *obj); static void virNetworkPortDispose(void *obj); static void virNodeDeviceDispose(void *obj); -static void virNWFilterBindingDispose(void *obj); static void virSecretDispose(void *obj); static void virStreamDispose(void *obj); static void virStorageVolDispose(void *obj); @@ -107,6 +105,22 @@ vir_nw_filter_class_init(virNWFilterClass *klass) obj->finalize =3D virNWFilterFinalize; } =20 +G_DEFINE_TYPE(virNWFilterBinding, vir_nw_filter_binding, G_TYPE_OBJECT); +static void virNWFilterBindingFinalize(GObject *obj); + +static void +vir_nw_filter_binding_init(virNWFilterBinding *bdg G_GNUC_UNUSED) +{ +} + +static void +vir_nw_filter_binding_class_init(virNWFilterBindingClass *klass) +{ + GObjectClass *obj =3D G_OBJECT_CLASS(klass); + + obj->finalize =3D virNWFilterBindingFinalize; +} + virClassPtr virAdmConnectClass; virClassPtr virAdmConnectCloseCallbackDataClass; =20 @@ -163,7 +177,6 @@ virDataTypesOnceInit(void) DECLARE_CLASS(virNetwork); DECLARE_CLASS(virNetworkPort); DECLARE_CLASS(virNodeDevice); - DECLARE_CLASS(virNWFilterBinding); DECLARE_CLASS(virSecret); DECLARE_CLASS(virStream); DECLARE_CLASS(virStorageVol); @@ -958,7 +971,7 @@ virNWFilterFinalize(GObject *obj) * @filtername: name of the network filter * * Allocates a new network filter binding object. When the object is no lo= nger - * needed, virObjectUnref() must be called in order to not leak data. + * needed, g_object_unref() must be called in order to not leak data. * * Returns a pointer to the network filter binding object, or NULL on erro= r. */ @@ -966,16 +979,15 @@ virNWFilterBindingPtr virGetNWFilterBinding(virConnectPtr conn, const char *portdev, const char *filtername) { - virNWFilterBindingPtr ret =3D NULL; + g_autoptr(virNWFilterBinding) ret =3D NULL; =20 if (virDataTypesInitialize() < 0) return NULL; =20 - virCheckConnectGoto(conn, error); - virCheckNonNullArgGoto(portdev, error); + virCheckConnectReturn(conn, NULL); + virCheckNonNullArgReturn(portdev, NULL); =20 - if (!(ret =3D virObjectNew(virNWFilterBindingClass))) - goto error; + ret =3D VIR_NW_FILTER_BINDING(g_object_new(VIR_TYPE_NW_FILTER_BINDING,= NULL)); =20 ret->portdev =3D g_strdup(portdev); =20 @@ -983,16 +995,12 @@ virGetNWFilterBinding(virConnectPtr conn, const char = *portdev, =20 ret->conn =3D virObjectRef(conn); =20 - return ret; - - error: - virObjectUnref(ret); - return NULL; + return g_steal_pointer(&ret); } =20 =20 /** - * virNWFilterBindingDispose: + * virNWFilterBindingFinalize: * @obj: the network filter binding to release * * Unconditionally release all memory associated with a nwfilter binding. @@ -1002,15 +1010,17 @@ virGetNWFilterBinding(virConnectPtr conn, const cha= r *portdev, * which may also be released if its ref count hits zero. */ static void -virNWFilterBindingDispose(void *obj) +virNWFilterBindingFinalize(GObject *obj) { - virNWFilterBindingPtr binding =3D obj; + virNWFilterBindingPtr binding =3D VIR_NW_FILTER_BINDING(obj); =20 VIR_DEBUG("release binding %p %s", binding, binding->portdev); =20 VIR_FREE(binding->portdev); VIR_FREE(binding->filtername); virObjectUnref(binding->conn); + + G_OBJECT_CLASS(vir_nw_filter_binding_parent_class)->finalize(obj); } =20 =20 diff --git a/src/datatypes.h b/src/datatypes.h index e8bd9bf1e5..87c6a1366e 100644 --- a/src/datatypes.h +++ b/src/datatypes.h @@ -36,7 +36,6 @@ extern virClassPtr virInterfaceClass; extern virClassPtr virNetworkClass; extern virClassPtr virNetworkPortClass; extern virClassPtr virNodeDeviceClass; -extern virClassPtr virNWFilterBindingClass; extern virClassPtr virSecretClass; extern virClassPtr virStreamClass; extern virClassPtr virStorageVolClass; @@ -50,6 +49,13 @@ G_DECLARE_FINAL_TYPE(virDomainCheckpoint, DOMAIN_CHECKPOINT, GObject); =20 +#define VIR_TYPE_NW_FILTER_BINDING vir_nw_filter_binding_get_type() +G_DECLARE_FINAL_TYPE(virNWFilterBinding, + vir_nw_filter_binding, + VIR, + NW_FILTER_BINDING, + GObject); + #define VIR_TYPE_DOMAIN_SNAPSHOT vir_domain_snapshot_get_type() G_DECLARE_FINAL_TYPE(virDomainSnapshot, vir_domain_snapshot, @@ -328,8 +334,8 @@ G_DECLARE_FINAL_TYPE(virAdmClient, vir_adm_client, VIR,= ADM_CLIENT, GObject); =20 #define virCheckNWFilterBindingReturn(obj, retval) \ do { \ - virNWFilterBindingPtr _nw =3D (obj); \ - if (!virObjectIsClass(_nw, virNWFilterBindingClass) || \ + virNWFilterBindingPtr _nw =3D VIR_NW_FILTER_BINDING(obj); \ + if (!G_IS_OBJECT(_nw) || !(G_OBJECT_TYPE(_nw) =3D=3D VIR_TYPE_NW_F= ILTER_BINDING) || \ !virObjectIsClass(_nw->conn, virConnectClass)) { \ virReportErrorHelper(VIR_FROM_NWFILTER, \ VIR_ERR_INVALID_NWFILTER_BINDING, \ @@ -800,7 +806,7 @@ struct _virNWFilter { * Internal structure associated to a network filter port binding */ struct _virNWFilterBinding { - virObject parent; + GObject parent; virConnectPtr conn; /* pointer back to the connection= */ char *portdev; /* the network filter port device= name */ char *filtername; /* the network filter name */ diff --git a/src/libvirt-nwfilter.c b/src/libvirt-nwfilter.c index cd3f5759b7..ac34d1fea0 100644 --- a/src/libvirt-nwfilter.c +++ b/src/libvirt-nwfilter.c @@ -621,7 +621,7 @@ virNWFilterBindingFree(virNWFilterBindingPtr binding) =20 virCheckNWFilterBindingReturn(binding, -1); =20 - virObjectUnref(binding); + g_object_unref(binding); return 0; } =20 @@ -819,13 +819,12 @@ virNWFilterBindingGetXMLDesc(virNWFilterBindingPtr bi= nding, unsigned int flags) int virNWFilterBindingRef(virNWFilterBindingPtr binding) { - VIR_DEBUG("binding=3D%p refs=3D%d", binding, - binding ? binding->parent.u.s.refs : 0); + VIR_DEBUG("binding=3D%p", binding); =20 virResetLastError(); =20 virCheckNWFilterBindingReturn(binding, -1); =20 - virObjectRef(binding); + g_object_ref(binding); return 0; } diff --git a/src/nwfilter/nwfilter_driver.c b/src/nwfilter/nwfilter_driver.c index 1c407727db..cbf396342e 100644 --- a/src/nwfilter/nwfilter_driver.c +++ b/src/nwfilter/nwfilter_driver.c @@ -785,8 +785,7 @@ nwfilterBindingCreateXML(virConnectPtr conn, =20 if (virNWFilterInstantiateFilter(driver, def) < 0) { virNWFilterBindingObjListRemove(driver->bindings, obj); - virObjectUnref(ret); - ret =3D NULL; + g_clear_object(&ret); goto cleanup; } virNWFilterBindingObjSave(obj, driver->bindingDir); --=20 2.25.1