From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35905) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZlyqA-0000Jb-MF for qemu-devel@nongnu.org; Tue, 13 Oct 2015 08:38:03 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Zlyq9-0004Pr-RS for qemu-devel@nongnu.org; Tue, 13 Oct 2015 08:38:02 -0400 Received: from mx1.redhat.com ([209.132.183.28]:49397) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zlyq9-0004Pf-K7 for qemu-devel@nongnu.org; Tue, 13 Oct 2015 08:38:01 -0400 From: "Daniel P. Berrange" Date: Tue, 13 Oct 2015 13:37:44 +0100 Message-Id: <1444739866-14798-6-git-send-email-berrange@redhat.com> In-Reply-To: <1444739866-14798-1-git-send-email-berrange@redhat.com> References: <1444739866-14798-1-git-send-email-berrange@redhat.com> Subject: [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: qemu-devel@nongnu.org Cc: Pavel Fedin , Markus Armbruster , Paolo Bonzini , =?UTF-8?q?Andreas=20F=C3=A4rber?= 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 --- 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, Error **errp) Error *local_err = NULL; char *str, *info; ObjectProperty *prop; + ObjectPropertyIterator *iter; StringOutputVisitor *ov; if (!nf->netdev_id) { @@ -173,7 +174,8 @@ static void netfilter_complete(UserCreatable *uc, Error **errp) QTAILQ_INSERT_TAIL(&nf->netdev->filters, nf, next); /* generate info str */ - QTAILQ_FOREACH(prop, &OBJECT(nf)->properties, node) { + iter = object_property_iter_init(OBJECT(nf)); + while ((prop = object_property_iter_next(iter))) { if (!strcmp(prop->name, "type")) { continue; } @@ -187,6 +189,7 @@ static void netfilter_complete(UserCreatable *uc, Error **errp) g_free(str); g_free(info); } + object_property_iter_free(iter); } static void netfilter_finalize(Object *obj) -- 2.4.3