diff mbox

[v4,5/7] net: convert net filter code to use object property iterators

Message ID 1444739866-14798-6-git-send-email-berrange@redhat.com
State New
Headers show

Commit Message

Daniel P. Berrangé Oct. 13, 2015, 12:37 p.m. UTC
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 <berrange@redhat.com>
---
 net/filter.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

Comments

Andreas Färber Nov. 5, 2015, 5:18 p.m. UTC | #1
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.
> 
> Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
> ---
>  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)

Reviewed-by: Andreas Färber <afaerber@suse.de>

CC'ing Stefan.

Regards,
Andreas
diff mbox

Patch

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)