From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:37235) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zz9Ww-0003Ht-Je for qemu-devel@nongnu.org; Wed, 18 Nov 2015 15:40:39 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Zz9Wv-0005cm-LO for qemu-devel@nongnu.org; Wed, 18 Nov 2015 15:40:38 -0500 Received: from mx2.suse.de ([195.135.220.15]:49550) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zz9Wv-0005cg-FG for qemu-devel@nongnu.org; Wed, 18 Nov 2015 15:40:37 -0500 From: =?UTF-8?q?Andreas=20F=C3=A4rber?= Date: Wed, 18 Nov 2015 21:39:34 +0100 Message-Id: <1447879178-5440-7-git-send-email-afaerber@suse.de> In-Reply-To: <1447879178-5440-1-git-send-email-afaerber@suse.de> References: <1447879178-5440-1-git-send-email-afaerber@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [PULL 06/10] net: Convert net filter code to use object property iterators List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Jason Wang , =?UTF-8?q?Andreas=20F=C3=A4rber?= From: "Daniel P. Berrange" Stop directly accessing the Object::properties field data structure and instead use the formal object property iterator APIs. This insulates the code from future data structure changes in the Object struct. Signed-off-by: Daniel P. Berrange Tested-by: Pavel Fedin Signed-off-by: Andreas F=C3=A4rber --- net/filter.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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, Err= or **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, Err= or **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, Err= or **errp) g_free(str); g_free(info); } + object_property_iter_free(iter); } =20 static void netfilter_finalize(Object *obj) --=20 2.6.2