aboutsummaryrefslogtreecommitdiff
path: root/lib/classifier.h
diff options
context:
space:
mode:
authorBen Pfaff <blp@nicira.com>2010-11-17 14:25:33 -0800
committerBen Pfaff <blp@nicira.com>2010-12-06 09:59:30 -0800
commit772ec52b896380f23b587bea4a5bf18edd22449d (patch)
tree538b2fd44b01b331cbcca53c60d583627fcad329 /lib/classifier.h
parent7c9b00732c633ddd35b9d92fb9fa4c4f8e3ce390 (diff)
util: Introduce ASSIGN_CONTAINER to make iteration macros easier to read.
Diffstat (limited to 'lib/classifier.h')
-rw-r--r--lib/classifier.h16
1 files changed, 6 insertions, 10 deletions
diff --git a/lib/classifier.h b/lib/classifier.h
index 5629fc02..76a3a5c0 100644
--- a/lib/classifier.h
+++ b/lib/classifier.h
@@ -135,20 +135,16 @@ struct cls_rule *cls_cursor_first(struct cls_cursor *);
struct cls_rule *cls_cursor_next(struct cls_cursor *, struct cls_rule *);
#define CLS_CURSOR_FOR_EACH(RULE, MEMBER, CURSOR) \
- for ((RULE) = OBJECT_CONTAINING(cls_cursor_first(CURSOR), \
- RULE, MEMBER); \
+ for (ASSIGN_CONTAINER(RULE, cls_cursor_first(CURSOR), MEMBER); \
&(RULE)->MEMBER != NULL; \
- (RULE) = OBJECT_CONTAINING(cls_cursor_next(CURSOR, \
- &(RULE)->MEMBER), \
- RULE, MEMBER))
+ ASSIGN_CONTAINER(RULE, cls_cursor_next(CURSOR, &(RULE)->MEMBER), \
+ MEMBER))
#define CLS_CURSOR_FOR_EACH_SAFE(RULE, NEXT, MEMBER, CURSOR) \
- for ((RULE) = OBJECT_CONTAINING(cls_cursor_first(CURSOR), \
- RULE, MEMBER); \
+ for (ASSIGN_CONTAINER(RULE, cls_cursor_first(CURSOR), MEMBER); \
(&(RULE)->MEMBER != NULL \
- ? ((NEXT) = OBJECT_CONTAINING(cls_cursor_next(CURSOR, \
- &(RULE)->MEMBER), \
- RULE, MEMBER), 1) \
+ ? ASSIGN_CONTAINER(NEXT, cls_cursor_next(CURSOR, &(RULE)->MEMBER), \
+ MEMBER) \
: 0); \
(RULE) = (NEXT))