From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57642) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZuOBE-0006ml-Nk for qemu-devel@nongnu.org; Thu, 05 Nov 2015 12:18:33 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZuOBB-0003tu-BW for qemu-devel@nongnu.org; Thu, 05 Nov 2015 12:18:32 -0500 Received: from mx2.suse.de ([195.135.220.15]:53068) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZuOBB-0003to-5d for qemu-devel@nongnu.org; Thu, 05 Nov 2015 12:18:29 -0500 References: <1444739866-14798-1-git-send-email-berrange@redhat.com> <1444739866-14798-6-git-send-email-berrange@redhat.com> From: =?UTF-8?Q?Andreas_F=c3=a4rber?= Message-ID: <563B8F64.2050009@suse.de> Date: Thu, 5 Nov 2015 18:18:28 +0100 MIME-Version: 1.0 In-Reply-To: <1444739866-14798-6-git-send-email-berrange@redhat.com> Content-Type: text/plain; charset=iso-8859-15 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH v4 5/7] net: convert net filter code to use object property iterators List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Daniel P. Berrange" , qemu-devel@nongnu.org Cc: Paolo Bonzini , Pavel Fedin , Markus Armbruster , Stefan Hajnoczi Am 13.10.2015 um 14:37 schrieb Daniel P. Berrange: > Stop directly accessing the Object "properties" field data Object::properties data ... > structure and instead use the formal object property iterator > APIs. This insulates the code from future data structure > changes in the Object struct. >=20 > Signed-off-by: Daniel P. Berrange > --- > net/filter.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) >=20 > diff --git a/net/filter.c b/net/filter.c > index 326f2b5..1365bad 100644 > --- a/net/filter.c > +++ b/net/filter.c > @@ -137,6 +137,7 @@ static void netfilter_complete(UserCreatable *uc, E= rror **errp) > Error *local_err =3D NULL; > char *str, *info; > ObjectProperty *prop; > + ObjectPropertyIterator *iter; > StringOutputVisitor *ov; > =20 > if (!nf->netdev_id) { > @@ -173,7 +174,8 @@ static void netfilter_complete(UserCreatable *uc, E= rror **errp) > QTAILQ_INSERT_TAIL(&nf->netdev->filters, nf, next); > =20 > /* generate info str */ > - QTAILQ_FOREACH(prop, &OBJECT(nf)->properties, node) { > + iter =3D object_property_iter_init(OBJECT(nf)); > + while ((prop =3D object_property_iter_next(iter))) { > if (!strcmp(prop->name, "type")) { > continue; > } > @@ -187,6 +189,7 @@ static void netfilter_complete(UserCreatable *uc, E= rror **errp) > g_free(str); > g_free(info); > } > + object_property_iter_free(iter); > } > =20 > static void netfilter_finalize(Object *obj) Reviewed-by: Andreas F=E4rber CC'ing Stefan. Regards, Andreas --=20 SUSE Linux GmbH, Maxfeldstr. 5, 90409 N=FCrnberg, Germany GF: Felix Imend=F6rffer, Jane Smithard, Graham Norton; HRB 21284 (AG N=FC= rnberg)