Thanks, I pushed this.
On Thu, Nov 10, 2011 at 11:12:01AM -0800, Ethan Jackson wrote: > 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