Looks good. Ethan
On Wed, Nov 9, 2011 at 16:24, Ben Pfaff <b...@nicira.com> wrote: > I like how this removes over 20 lines of code and ends up more readable. > --- > lib/classifier.c | 30 +++--------------------------- > 1 files changed, 3 insertions(+), 27 deletions(-) > > diff --git a/lib/classifier.c b/lib/classifier.c > index 8ffc96f..04e545e 100644 > --- a/lib/classifier.c > +++ b/lib/classifier.c > @@ -32,9 +32,6 @@ static struct cls_table *find_table(const struct classifier > *, > static struct cls_table *insert_table(struct classifier *, > const struct flow_wildcards *); > > -static struct cls_table *classifier_first_table(const struct classifier *); > -static struct cls_table *classifier_next_table(const struct classifier *, > - const struct cls_table *); > static void destroy_table(struct classifier *, struct cls_table *); > > static struct cls_rule *find_match(const struct cls_table *, > @@ -57,12 +54,6 @@ static bool flow_equal_except(const struct flow *, const > struct flow *, > static struct cls_rule *next_rule_in_list__(struct cls_rule *); > static struct cls_rule *next_rule_in_list(struct cls_rule *); > > -static struct cls_table * > -cls_table_from_hmap_node(const struct hmap_node *node) > -{ > - return node ? CONTAINER_OF(node, struct cls_table, hmap_node) : NULL; > -} > - > /* Converts the flow in 'flow' into a cls_rule in 'rule', with the given > * 'wildcards' and 'priority'. */ > void > @@ -949,8 +940,7 @@ cls_cursor_first(struct cls_cursor *cursor) > { > struct cls_table *table; > > - for (table = classifier_first_table(cursor->cls); table; > - table = classifier_next_table(cursor->cls, table)) { > + HMAP_FOR_EACH (table, hmap_node, &cursor->cls->tables) { > struct cls_rule *rule = search_table(table, cursor->target); > if (rule) { > cursor->table = table; > @@ -984,8 +974,8 @@ cls_cursor_next(struct cls_cursor *cursor, struct > cls_rule *rule) > } > } > > - for (table = classifier_next_table(cursor->cls, cursor->table); table; > - table = classifier_next_table(cursor->cls, table)) { > + table = cursor->table; > + HMAP_FOR_EACH_CONTINUE (table, hmap_node, &cursor->cls->tables) { > rule = search_table(table, cursor->target); > if (rule) { > cursor->table = table; > @@ -1023,20 +1013,6 @@ insert_table(struct classifier *cls, const struct > flow_wildcards *wc) > return table; > } > > -static struct cls_table * > -classifier_first_table(const struct classifier *cls) > -{ > - return cls_table_from_hmap_node(hmap_first(&cls->tables)); > -} > - > -static struct cls_table * > -classifier_next_table(const struct classifier *cls, > - const struct cls_table *table) > -{ > - return cls_table_from_hmap_node(hmap_next(&cls->tables, > - &table->hmap_node)); > -} > - > static void > destroy_table(struct classifier *cls, struct cls_table *table) > { > -- > 1.7.2.5 > > _______________________________________________ > dev mailing list > dev@openvswitch.org > http://openvswitch.org/mailman/listinfo/dev > _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev